globální proměnné ponechejme stranou a zůstaňme u singletonu
"Protože zkušenosti s tímto vzorem ukazují, že to vůbec není dobrý nápad"
to není moc argument. Jaké zkušenosti? Výhoda singletonu je, že pokud o něj není zájem, tak se vůbec nevytvoří. Například error handling. Když ti nevznikne při běhu chyba, není důvod vytvářet error handling instanci. Jak bys to řešil bez singletonu?