currently B::Terse and B::Concise parse the source text a new rather than have the ability to work on an in place node structure
I'm pretty sure you are precisely wrong on that point.
The B::Concise man page shows how to call the compile() method which does not take Perl source code (despite what the name "compile" might imply) but only a list of subroutine names or CODE refs. So it seems pretty clear that the module walks the opnode tree of your existing interpreter instance for Perl code that you have already compiled. Looking at the source code of B::Concise and B confirms this.