This. You might run into an edge case or two, and the display values might disagree with the actual ones (in case if some of the values are stored in some property list somewhere, that’s used only for display purposes), but ultimately you can change basically everything from the Terminal.
You can but its fairly flimsy and requires a reboot for a lot of them to take effect / reflect reality. Discoverability is a whole other can of worms to figure out what to set.
They are not really CLI tools, but the CLI tools are based on the same APIs that applications use. There are several applications that expose settings hidden in System Preferences (like Onyx, off the top of my head), and under the hood they use the API, not the command line.