I believe it is related to watermarking. Text can't encode additional information like a image can, so the watermarking has to come from the structure, word choice, voice, etc. Claude has to sound like Claude so Claude can tell if text comes from Claude.
I also think this is why the models aggressively drift back to the exact same word choice. You can put it in CLAUDE.md, explicitly prompt it, doesn't matter. A prompt or two later it's back on its bullshit.