Rozdělení tříd do více souborů má spoustu praktických výhod - snáze se hledají, je snazší si otevřít třídy ve více panelech vedle sebe v IDE (mám vždy dva editační panely), soubory jsou krátké a přehledné. Snáze se také v rámci jednoho souboru vyhledává/nahrazuje - je to v rámci jedné třídy. Rovněž commity v GITu jsou přehlednější, protože už z výpisu změněných souborů v diffu vidím, jakých tříd se týkal. IMO je soubor na public třídu užitečný způsob.
V některých souborech mám několik spolu úzce souvisejících tříd, ale jen pokud jsou krátké, většinou jen pomocná DTO. Navíc třídy v jednom souboru musí jít ve správném pořadí, jak jsou postupně definované - i tak musí být typehinty uvedené jako stringy v apostrofech. Když se na to zapomene - opět se to zjistí až při prvním spuštění, IDE nic nezahlásí, protože třídu zná, zatímco interpret ne.