Yes. JPype extends with CPython concrete types for each corresponding type in Java with its equivalent in Python. Thus java boolean, short, int, long, java.lang.Integer, java.lang.Short, java.lang.Long all inherit from PyLong. Java float and double with boxed types extend from PyFloat. All exception types extend from Python exception. The class tree for all types is given by Java meaning that if something inherits from java.lang.Object and then it inherits from exception, that means that type tree will be requesting JObject (base class Python object) and JException (base class Python exception) to be mixed together which is of course impossible without extending the memory layout like JPype has done. I would do the same with Python String if there were an API for lazy allocation of the data portion of the String.
Under the Python typing system this type of mixin is permitted, but only if none of the classes add to either the basicsize or the itemsize. Hence JPype has since Python 3.5 always simply added its memory to the space after the standard Python object. Attempting to add it into the Python system has always failed. PEP 697 was to address the issue but ended up missing our use case because it altered basicsize which meant the mixin in failed for the three Python types we extend from.
JPype of course is a very special use case as it it is reflecting an object tree inherited from another language. In most cases the user has some level of freedom to design their object tree. It is only language binding for Java or C# where something like this happens.