Jason...
If you examine the code associated with the use of Jupyter in say the arcgis 1.6.2 module, you will see that geometries are paralleled by an 'has arcpy' and 'doesn't have arcpy' stream
_HASARCPY = None
_HASSHAPELY = None
If you have arcpy, then that filter is triggered and your geometry is handled largely by arcpy. If you don't, then you are streamed to what 'shapely' has to offer. Numpy/Pandas is largely used to handle the attribute stream.