The problem is, that a lot of people abuse the singleton pattern as you stated, quasius. The original idea behind it was to prevent multiple instancing and not to become a better substitute for global variables.
There may be some cases where the quasi-global use is appropriate, but I think, in general, singletons are too often misunderstood. Not every manager class needs to be a singleton. Often, the pass by function parameters is safer and requires fewer dependencies. Debugging is easier when you know where an object can be changed. Globals imply the possibility to manipulate from everywhere.