That is the problem with how the backend of the game works. since all carriers, is always visible in all instances and platforms, to achieve this, they occupy a system unique identifier, that is shared with planets, stations and other persistent objects, There is a limited amount of such identifiers in each system.
This makes sense if anyone is allowed to land on the carrier. but many carriers are only for personal or friends/squadron use, so these Carriers do not need to be globally visible. And if these would use a different identifier, and only be visible to the ones that is allowed to land on the carrier.
So now anyone, can move their carrier to the desired system. But some carrier owners would have to restrict who can land on it if the system have no free system unique identifiers.
So this should solves the immediately problem with systems being full of carriers blocking other players to move their carrier there. It would also solve the very similiar issue with hard to reach places that is jammed packed with Carriers in the only route to/from there, preventing new carriers to move there, and other to leave, even if they want to leave. Creating one huge gridlock of Carriers...