If the status quo were the result of considered decision, then it would
of course need considerable justification.
If, as is the case here, the status quo is a result of historical
accident and/or implementation details, then I think a weaker
justification is OK.
Whoa. The lack of limits in the status quo (no limits on various things except indirectly, through available memory) is most definitely the result of an intentional decision. "No arbitrary limits" was part of Python's initial design philosophy. We didn't always succeed (parse tree depth and call recursion depth come to mind) but that was definitely the philosophy. It was in contrast to other languages that did have arbitrary limits (e.g. Pascal's 255-char limit on strings, or C's machine-dependent integer size) and in several cases the implementation went through great lengths to avoid limits (e.g. we could have avoided a lot of dynamic memory (re)allocation if we'd limited line lengths or file sizes).
You have an extreme need to justify why we should change now. "An infinite number of potential optimizations" does not cut it.
--