These are for Windows 7, from my old files – may be different now. But how is anyone ever going to figure that out? xmodmap can be somewhat hard to use, but a least it's documented, and you can play around with it to discover stuff. Some random hex values in some registry thing? Yeah ... good luck with that.
But I think you're confusing "discoverable" with "I'm already familiar with one of them." There's really nothing discoverable about '/etc'. There's no consistency in structure or even what type of configuration files are used. And that isn't even the only configuration path! There's also the smattering of random hidden folder crap in your home directory and then also the Linux registry. Sorry I mean dconf.
Meanwhile the windows registry is quite structured and strictly typed.
Maybe? It's possible I just used for convenience to quickly set up a machine. I haven't used Windows in over ten years, and I don't really recall; this is what I still have in my dotfiles repo "just in case I might need it in the future" (together with my old tcsh config and such, heh). The CapsLock/Ctrl thingy certainly wasn't a setting though.
Most (not all, most) files in /etc and ~/.config are fairly decently documented and "obvious". You're right it's not consistent or ideal, but I do find it a lot better than Windows. I spent many years repairing Windows PCs for a living and spent plenty of time mucking about with the registry back in the day, and I never found it easy to work with, at all. I've forgotten more than I remember, but there's loads of odd things in there in odd locations. A big chunk of that is not the fault of Windows or Microsoft but the fault of applications though, and in that sense it's the same as Linux: getting all application developers to use your system consistently and how it's intended to be used turns out to be hard.
For what it's worth, the registry would be much more palatable if it supported comments somehow (and if many things were actually commented!)
I'm not really invested in the Windows vs Linux thing but config files in /etc never get silently changed or removed. If they are, it's a critical bug, although I've never really seen it happen.
If there are any updates to the service files, they'll be installed alongside the original file. For example, on Arch Linux, it'll be /etc/systemd/journald.conf.pacnew while the original journald.conf file will never be touched.
The only place where a package manager should overwrite changes is /usr. If you made any changes inside /usr, then yes, it'll be overwritten. A user isn't supposed to mess around inside /usr, unless there's a very good reason for it. There's /usr/local but it's better to just use $HOME/.local instead.
(can you tell that I've shipped Debian packages before?)
And of course you can do anything you want in a postinst script (again setting aside policy)
The whole point of Linux distributions is having policies to protect the end user and enforcing them.
I've never really used NetworkManager on my personal setup but if you're using it, you are willingly giving control of your network settings inside /etc to it, including the DNS, which is why /etc/resolv.conf gets changed automatically. You can choose not to use NetworkManager or systemd-resolvd (while still using systemd) and they won't mess around with /etc/resolv.conf.
For network management, I do use systemd-networkd and it hasn't overwritten or changed my files in /etc/systemd/network in the past 6 years of me using Linux, not that I recall at least.
It's upto you how you manage your settings in /etc. A software will never modify anything in /etc without your choice.
Hell, the simplest thing you can do is not use either NetworkManager or systemd-resolved and edit /etc/resolv.conf to point to your favourite DNS server. That file will never change automatically and you can use whatever DNS you want.