The following certainly cannot be ideal:
\procedure my-proc(my-param)
  <$wikify name="my-var" mode="inline" text=`<<my-helper $(my-param)$>>` >
    <!-- Use `my-var` here -->
  </$wikify>
\end my-proc
That call to wikify seems ridiculous.  But when I replace it with a $let widget, I get problems.  It doesn’t happen with the simplified version above1, but in my more complex recursive environment, I get a recursive transclusion error.  I don’t get that with $wikify.
I have posted a sample wiki to http://scott.sauyet.com/Tiddlywiki/Demo/Breadcrumbs/v1/. You can see the effect I’m going for in, for example #Policy1234(II)(A):
The relevant code is in $:/_/my/procedures/crumbs
The (working!) function in question looks like this:
\procedure lineage(tid)
  <$wikify name="parent" mode="inline" text=`<<get-parent $(tid)$>>` >
    <% if [<parent>trim[]!match[]] %>
      <$transclude $variable="lineage" tid=<<parent>> />
    <% endif %> 
    <!-- ... more here ... -->
  </$wikify>
\end lineage
There’s a commented out version included, which looks instead like this:
\procedure lineage(tid)
  <$let parent={{{ [<get-parent>] }}} >
    <% if [<parent>trim[]!match[]] %>
      <$transclude $variable="lineage" tid=<<parent>> />
    <% endif %> 
    <!-- ... more here ... -->
  </$let>
\end lineage
This is the one that ends up with an error.
Can anyone suggest why?
Background
I am trying to redo the initial work I’ve one on a wiki I’ve been working on.  But this time, instead of depending on parent and marker fields in the child tiddlers, I would like to do it all from the titles, which already describe a hierarchical structure: Policy1234(II)(A) is a child of Policy1234(II), which is itself a child of Policy1234, and where I need a marker, it’s in the final parenthesized section of the title.  I think in the end that will be a lot cleaner.  But because of the changed structure, it’s a bit of work.  Before I went on to the main content, I decided to do these breadcrumbs first.  I tried a number of ways to call to get the title, and kept failing until I tried this $wikify version.  But I really feel as though there should be something simpler.
1 For instance this works as expected:
\procedure my-helper(tid)
  {{{ [<tid>uppercase[]] [[-]] [<tid>] +[join[]] }}}
\end my-helper
\procedure my-proc(my-param)
  <$let tid=<<my-param>> my-var={{{ [<my-helper>] }}} >
    The result looks like <<my-var>>.  Is that right?
  </$let>
\end my-proc
        
