The current implementation of userspace variables (system, hostname, etc...) is a common, yet not very very robust pattern. I suggest that it is advised against, and replaced with a very tiny module system inside the flake. This will not only get rid of the current solution that's going to nag the user, or worse, push them to use specialArgs for those variables but also introduce them to the module system.
I propose (and am willing to implement) replacing those examples with instances of the module system in the templates.