I don’t really get your beef with static classes / singletons but stuff like a SpriteBank, in my case a ContentManager shall never ever be instantiated twice.
Your not going to load content twice from file to RAM. And it would be bad if someone did =D
sure Input classes for example don’t need access to this class, but they can’t do any harm really.
My ContentManager is the only class that accesses content/assets in file form directly, and whoever needs content and get it from here.
A centralized class to load, manage and IO content.
Audio is also there, which means, yeah, you can play a sound whenever the inputHandler finds a new device… but it could be that you would actually wanna do this
In any case this access cannot really break anything.