The system is an instance shared between up to 32 players. Other players beyond that number have their own 'parallel universe' instance of the same system. So there are a lot of parallel identical maps happening at the same time.
An instance, as far as I understand, does not necessarily consist of a whole system. It simply means the max number of players which can see each other at any given time is 32. This means, if you are in supercruise in a system, you can see 31 other players in supercruise with you. This does not mean if you have say 2 more people in SC with you that other 29 can be at normal space in the same system. You'll simply not be in the same instance with people in normal space if you are in SC, ever. That's why you need to follow wakes if you want to be in the same instance in normal space. The wake is simply a key for the servers to try and put people in the same instance. Also this is why there are two kinds of wake, low and high energy.
The reason for the interstellar jump animation:
When you jump from a system to another, the target system is generated by your computer from scratch according to the rules of the procedural generation algorithm. This is to ensure you'll get the same system every time without necessarily keeping the whole galaxy in your hard drive. Even the textures of planets are generated from seeds if I'm not mistaken.
Space stations and ships on the other hand, have meshes and textures that have to be stored. That is what most of the HD space for the client is needed. Persistent meshes, textures and sounds. This is why you can jump straight from a station to a new system but not station to station. A station, with all the ships around it has to be loaded into the memory from storage, not generated. It has too many details for that to be feasible. If you jumped from a station straight to another station in another system for example, your computer would need to first generate the target system from scratch, then load up the station and ship assets. As a result you would have to wait even longer than you wait now. The same is the reason for the announced 'orbital cruise' mechanic. It'll divide up the loading process so you won't have to wait for the system and everything on the planets to load up before arriving there. The system will load up as usual, then you'll approach a planet in SC, you'll drop to orbital cruise which is basically loading up a station since a planet with everything on it is not necessarily bigger load than a single station is. PG textures and geometry for the planet is a no issue. The structures of the bases are about the same complexity with a station so it wouldn't require much more space. I'm sure they'll divide up the planet surfaces into regions, just like the asteroid rings around the planets so when in the vicinity of a new base, it'll load, just like bodies in the fields load when you fly through them.
TL,DR: Instancing and Procedural Generation of the 400,000,000,000 start systems are separate reasons for non-seamlessness. They don't necessarily cause the issues by themselves. They however are better than the alternatives in terms of hardware efficiency. Either everyone would need a supercomputer with stupid amounts of storage space on top of the supercluster of servers to run the game, or it would need to be run on a supercluster of servers and streamed to everybody for the price of a hefty subscription every month if you wanted to achieve real seamlessness.