Axon doesn’t really rely on full history, but maybe your application does ;-). Generally, after creating a snapshot, you should be able to remove events. Just remember to not throw away these snapshots anymore, as you will really rely on them. Also, for a full replay, you will not be able to replay those events.
A strategy we have seen (which we will soon support out of the box with AxonServer) is to archive old events, moving them to cheaper (and slower?) storage when they grow old. Access patterns for old events are different than that of recent events.
Regarding splitting aggregates, a common approach is to split based on bounded context, rather than aggregate type. That means some types will be stored in the same table/collection if they are relatively tightly coupled. Generally, that would mean a component would only need to access a single collection.
Hope this makes sense.