I've never really had any of the issues that is mentioned in the bullet points. I use the Atlassian post on storing dotfiles [1] for several years now.
* It's easy to setup on a new machine, no creating symlinks on every setup
* I create separate branches for different machines/environments. Like, currently, I have a branch for macos and my master branch is for devcontainer, but I have had a linux branch too.
I copied the post to a markdown as a README in the repository in the off chance Atlassian deletes the post for some reason.
Most recently, I started moving any config files I could into the .config to keep the home directory clean. i.e. .config/git .config/fish and .config/zsh
1: https://www.atlassian.com/git/tutorials/dotfiles