But I'm assuming this would require substantial changes for the Ice runtime to also use these properties on initialize(), combining the command-line properties, "--Ice.Grid.Node=", the ICE_CONFIG config file, as well as any PropertiesI() which are passsed in.

Thanks XDM. Of course, you are right. The example I gave is doable in IceGrid. But other configuration, say in the client, do not allow this. One example might be:

Ice.Default.Router=OMERO.Glacier2/router:tcp -p 4063 -h ${host}

which would allow a user to enter the "host" value, but without the need for the developer to do any string parsing on the "Ice.Default.Router" value nor to store the base of that string elsewhere, say: