I had the opposite experience. I had an older nvidia card. The binary driver would work great, then an update to the nvidia driver would come out, and the next reboot, I got to have lots of fun trying to get get it repaired without a gui. Half the time, just uninstalling/re-installing the older version would fix it.
For a long time I was on Ubuntu 14.04 LTS with the NVidia driver, and every time to update it would be a pain; inevitably, when I rebooted, I'd be at a console, having to fix the damn thing so the updated driver would work.
After a couple of times of this, what I saw that was happening (and I am not saying this was it in your case) was my X config file was being replaced/updated and really just breaking everything. So I got in the habit of always making a backup of that file. Usually, when dropped at the console, I could just backup the config file there, then copy my old file over, and everything would work perfectly on restart.
Except this last time (a few months ago) - but it was inevitable it would happen, and it was entirely my fault.
I had a need a couple of years back to be able to use the latest C++ 11 version of gcc - but 14.04 LTS didn't have it available, and there wasn't any backports. So I decided to "wing it" from scratch, compiling a new version.
Then I found myself in dependency hell - which I also got past through a variety of updates from for my Ubuntu, or via download and install, etc. It was a complete mess, but in the end I got it working...
...until I tried to update - the entire update system was fairly broken, so no moving forward from 14.04 LTS.
But I thought I could do NVidia's latest proprietary driver - and it needed the compiler and other parts (for what reason I don't know) and it died a horrible death, leaving me with no good options to for the driver. I had to fall back to the open source neuveau driver (yuck) just to get my desktop back. But things were pretty well hosed.
Fortunately my OS was on a seperate partition and drive, so I bit the bullet and did a reinstall and upgrade (to Budgie Desktop 18.04 LTS), and vowed to never do any hand compile and install stuff again (next time if I need such a thing, it's going to be in a VM or containerized).
I've often wondered about putting the whole of /etc into a git repository, so any changes (either by software updates, or by myself) were visible and reversible. Does anyone do this, and if not why not?