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.
If you genuinely have the discipline to get away with that kind of thing then go for it, but I’d rather do things cleanly because it means I’ve got less to think about when I develop and debug.