The main issue I have with singletons is that any mutable global state prevents your application from being first-class within its own runtime environment.
This is of course useful for unit testing, but also reduces hidden state dependencies between submodules.
This is of course useful for unit testing, but also reduces hidden state dependencies between submodules.