I think using empty string as an indicator that we don't want to use external nodes is a bit hackish. Empty string is just another value of string. Some could then argue that we should also allow "false" etc. On the other hand I don't see a reason why not to be more explicit about whether we want to use external nodes or not.