Luckily, you can do the rewrite manually.  I recently implemented an array mapped trie that shared structure when copied.  `find`, `erase`, and `at` were all rewritten to use loops after first implementing them recursively (and profiling indicated it to be a problem).