You are correct, I understand what it is intended to do, i.e. it is supposed to encapsulate the name of the subsystem as part of the subsystem instance, so that there aren't all sorts of "foo" lookups all over the place in sg/fg - however, I haven't checked what else it might be doing.
For instance, if there is still old code using the old lookup method, it may be possible (in theory) that multiple instances of a subsystem may get allocated, using different handles.
For that, we need to look at the patch in question - reverting is unlikely to work, because this is stuff at the simgear/sgsubsystem level, i.e. low-level stuff that other code depends on.
Technically, it using a new template method apparently to make the pointer acquisition more compact, i.e. a single place for handling this in SG, instead of having this all over the place in sg and fg