At this time, we heavily rely on our internal structure, causing atrocious incompatibilities and pitfalls. I should investigate further to better comment, but I presume that one possible solution could be to improve the info command and use that to ensure there are no speculations about jails. In other words, anytime a command is to modify or deal with an attribute, the info command checks that attribute first, so the intended job happens on the right thing and not on a sloppy guess based on the internal design.
For instance, the ZFS mount point of a jail does not necessarily have to be ${JAILER_ZFS_DATASET}/${_name}. We follow that convention, right, but it doesn't mean we should believe all jails (whether or not created/modified by our jailer) follow that too.