But what I'm after is recursion. Rather than make 20 individual frameset pages each with different target="name"s, it would be way cooler simply to populate each frame area with itself.
"Infinite recursion is prevented. Any frame that attempts to assign as its SRC a URL used by any of its ancestors is treated as if it has no SRC URL at all (basically a blank frame). This doesn't prevent all malicious documents, but it eliminates a troublesome class of them."
Ah well, probably for the best really... It seems to have a recursion limit of 10 on Firefox, and 12 on Chrome.
I cheated by creating your original frameset pattern and then just recursing index.html in the middle frame. It improves the recursion effect a bit, but still isn't infinite.
Pedantic props for the doctype tip.
EDIT: In theory this should work, but browsers are uncooperative: http://tilde.club/~arch/frames-odd.html