If the solution to homebrews handling of major versions is to not use homebrew, I think it indicates there are issues.
I think it should work like almost Linux distros where the major version is fixed for a release lifecycle, and any other installations require modification. So say brew install postgresql should always install 12, and if you want something else you have to add the version modifier.