Agreed, and the migration arrived there more by accident than design. Its final pull request added a test that fails if a twelfth search box ever appears, which is the codebase saying no in about the only way it reliably can.
What surprised me is how much of the work the cheap half did. One paragraph in CLAUDE.md, sitting next to nine hundred lines of exactly the code it forbids, flipped 32 of 32 runs from hand-rolling to reuse. Nearest-thing retrieval lost to a written rule, which is not what I expected going in.
Where your point bites is the half the rule could not reach. Reaching for the component is not the same as calling it correctly: with the rule alone, 28.6% of calls invented a prop that does not exist, and with only the filename visible, 82.1%. So making the shared thing cheapest to use has to include making its interface reachable, or the model writes a confident call to an API it has never seen.