Now that the internal tags have been removed. Going forward the only tagged objects are in fact DataModel objects. It may make sense to eventually move all the TaggedObjectNode functionality directly in DataModel and have DataModel directly inherit from DNode So that we can get rid of the several pass through methods. This would also mean that asdf.open will simply give you a datamodel rather than having to go through rdm.open (which does more that asdf.open) to get a datamodel to work with.
Note that we can get around "static code" issues by creating some type stubs, which should actually be fairly easy if we can parse all the schemas for a given model into a single "super" schema like what has been proposed in spacetelescope/rad#659