Hah, it just so happens I was skimming PEP 8 today and noticed the section on hobgoblins :)
Whether the same reasoning applies to tensor shapes I think depends on which parts of code we expect to get annotated with shapes first:
* Case 1: If we expect library code to get annotated with specific shapes first, it'll break any old user code that tries to pass unparameterised tensors.
* Case 2: On the other hand, if we expect user code to get annotated first, it'll be fine, because parameterised tensors can be passed to unparameterised library functions no problem.
Admittedly, I do think case 2 is much more likely, but would be keen to hear from others if I'm missing something here.