Parent: #498 Related: #491, #465
The live quickening inventory labels pure and observable numeric recurrence paths as legacy_narrow / legacy_pattern_kernel. The pure path recognizes one exact bytecode body and computes a 256-element recurrence result/step table instead of executing the recursive calls; the observable variant recognizes one exact counter-updating body. Both conflict with the roadmap rule excluding body recognizers and computed-result caches.
Executed baseline: a no-native-owner fib(8) witness with VM inline calls disabled returns 21 and records 774 logical steps. Existing recurrence tests pass 4/4 and explicitly assert legacy-kernel hits. The VM-entry metric counts outer driver entry, so its value of 1 is not evidence of activation count; actual recursive statement events will be the call-observability witness.
Acceptance:
- Remove both recognizers/executors, their result/step tables, cached recurrence Chunk metadata, and test-only hit counters.
- Execute recursion through the general VM activation/call paths, preserving result 21, logical steps 774, rebinding, argument semantics, observable calls, and exceptions.
- Preserve and strengthen restriction/checkpoint, debugger/profiler, GC, no-GIL, termination, budget, and OOM witnesses using ordinary execution.
- Relevant exact before/after corpus and tree/VM comparisons introduce no new failures; focused normal, ReleaseSafe, and unsuppressed TSan gates pass.
- Remove live inventory coverage for the deleted kernels and regenerate docs/manifest; keep historical benchmark artifacts intact and identify the remaining legacy families honestly.
This removes benchmark-shaped work substitution. General no-JIT performance improvements remain open under #498; do not claim the removal establishes throughput parity.