I forgot to answer this. But hopefully it's mostly apparent now.
Historically, there's not a whole lot of magic to it. Really just some structural operations to pick apart and compose arrays...and PARSE was pretty much the best you had. But it had some key weaknesses, which the UPARSE design remedies.
There are helper functions for dialecting. R3-Alpha had DELECT, and @rgchris has MATCH, there are others:
Quartermaster MATCH dialect (name conflict with Ren-C)
Supposedly high-leverage is that you could pick out arrays you want to run, transform them, and EVAL them. But binding was pretty much always broken for any non-trivial usages. Ren-C has a much stronger hand here.
(Note: I've pointed out that historically a lot of the time, the developers of a Redbol (e.g. Carl, Nenad, Oldes, Karl-with-a-K) just give up and go to native code to implement a dialect. So they wind up writing a C-type program that processes the arrays. I really don't feel like that's compelling. One weak point for people who are used to XML or the DOM etc. is that because everything can be imaged in multiple locations, there are no "parent" pointers in the data structure. And I question the usefulness of things like Boron... but )
I actually don't have any big ideas about the higher-level dialecting tools. I just want to make PARSE and EVAL coherent and robust enough to build those...or whatever you want.