"it would be easier to change the single client versus multiple servers" + "trivially implemented on the client" It would be! That said, adding a new feature requires implementing that feature on the server, so requiring an additional change on the client is actually more work.
For example, one of the rooms in the house just installed house lighting to help with resetting rooms between guest groups. One one of the controllers has this.
Once I implemented the hardware logic, I updated the server's state response to include a new button that pointed to a new house lights endpoint. That button immediately showed up in the admin app. Super fun DevEx, and this is what I meant by minimize future work - minimal work to expose new room functionality.
"My assumption rests on the idea that changing the client is easier though" Think about the number of changes required to implement the feature end-to-end. You're right that updating N controller C++ templates for a button is wild, but that's not the entirety of the work. Those controllers already needed to be updated to handle what that button does. Adding the button itself is minimal work (copy-paste, really) in comparison to the feature work.