I don't think there is anything in life for which "one clear, right way" ever works.
For software at least I have very different requirements for
- the kernel on my work machine, coreutils, base system, etc (I want system updates and good stability and one single version installed on my system in a central location, can be read-only)
- development toolchains (I want multiple versions side by side in standard folders, e.g. multiple ABIs, cross toolchains, etc.)
- productivity apps (calendar, mail, etc). (I want one version in a central location with possibility of rollback)
- end-user apps, video, drawing & music apps, etc. (I want multiple version side by side installed in local folders as a very basic practice when doing some artistic work in a computer is to pin the artwork to a specific version of the software)