That's not true. You're forgetting about .directories. In fact, the engine will, by default, install to ~/.spring. I get what you're saying though. In particular appdata is intended to hold data for apps, like settings files, etc. Not entire freaking programs. Google chrome started this crap and when developers saw google doing it, some of them followed suit and now appdata is a giant mess.
This also serves a very practical purpose as well. Many people will have a small super fast ssd or nvme drive just for the OS and a separate drive for programs. Appdata lives in the user's home folder (the equivalent of something like ~/.appdata). This means that programs installing themselves to appdata is a major issue due to the fact that the OS drive is intended to be used strictly for the OS, but programs are circumventing that and installing themselves to appdata.
It's a stupid, shitty practice, and developers who do this should be raked over the coals for doing so.