Some remarks and simplification.

For system variable, the main idea is to define node-specific variable
ONLY on the node, so that we actually get an error if something goes
wrong in that process in place of silently using an incorrect value.
That allows to remove a lot of code.

There was other things that were FOBIDEN in that part of the code.
We NEVER EVER use Empty from Box to denote, well, None. Empty is
alway a failure. Always.

Hope the PR helps. It is not intended to be taken as that, but a base for
discussion.