I guess I didn't quite think the struct tests through; I forgot we use a separate rule to actually define struct types, and so the automated test doesn't prove anything one way or another. A manual test confirms that v4 is correct, though, at least.
In my defense, though, that error message is wrong and misled me; we can't be "redefining" anything in that rule. I'll send a patch to fix it.