Besides cleanliness which is more a preference I agree, separating config, data, and cache makes it easy to know what can/should be backed up, what can be synced across machines, etc.
As I said in a different comment here, I have 94 files and folders in my home, 84 of which are hidden, approximately zero of which actually needed to be hidden.
If anything, it's the reason this is such a common issue, the dot lets everyone shit files out all over the place but oh it's hidden so no big deal.
If all apps abode to it it would be nice because you could just backup config and skip all the other stuff. <type>/app hierarchy is much better than <app>/type because that allows for example of easily excluding ~/.cache from backups.
... but of course some apps must be super special flowers that need their own dir
Yeah, I find it especially annoying when apps do use the XDG directories but use them incorrectly (dumping a bunch of state/data in .config is unfortunately too common). If apps want to do that I wish they would just grab $HOME/.appname rather than mess up my .config dir.