bigfaceworm had the right idea. The autoloader
doesn't cope with [tailcall] or any other mechanism
where a command can erase itself from the stack trace.
Simplified demo:

% array set auto_index {demo {proc demo {} {tailcall error foo}}}
% demo
Tcl bug: unexpected stack trace in "unknown"

Since Itcl 4 started using [tailcall] in its fundamentals,
this flaw hurts autoloaded Itcl code bad, and that's a bad
habit most Itcl users persist in.