Given that there’s no indication that Python 4 will be any sort of “breaking” release (there seem to be 2 main schools of thought, one is that we simply continue with 3.X indefinitely, the other that 4.0 will just be the next release after some 3.X, nothing special), there doesn’t seem to be any reasonable justification for using python_requires='<4' at all.
For the full general discussion on the subject see: https://discuss.python.org/t/use-of-less-than-next-major-version-e-g-4-in-python-requires-setup-py/1066