There is value in saying "These are things that might be limited by the implementation." There is great value in documenting the limits that CPython in particular currently chooses to enforce. Users may want to see the numbers, and other implementations may wish to match or exceed these minimums as part of their compatibility efforts. This is particularly true if it effects bytecode validity, since other implementations often try to support bytecode as well as source code There is value is saying "A conforming implementation will support at least X", but X should be much smaller -- I don't want to declare micropython non-conformant just because it set limits more reasonable for its use case. I don't know that there is enough value in using a human memorable number (like a million), or in using the same limit across resources. For example, if the number of local variables, distinct names, and constants may be limited to 1,000,000 total instead of 1,000,000 each, I think that should be a quality of implementation issue instead of a language change. There may well be value in changing the limits supported by CPython (or at least CPython in default mode), or its bytecode format, but those should be phrased as clearly a CPython implementation PEP (or bytecode PEP) rather than a language change PEP.