No, the array can have more than one dimension, it is a different "dimension" A multipart shape polyline or multipart polygon or multipoint doesn't alter the underlying geometry dimensionality.
Simple multipart polygons with inner and outer rings as arrays (numpy arrays)
multi.prn_obj()
Array structure by sub-array.
0...
array([array([array([[ 10.00, 10.00],
[ 10.00, 0.00],
[ 1.50, 1.50],
[ 0.00, 10.00],
[ 10.00, 10.00]]), array([[ 3.00, 9.00],
[ 3.00, 3.00],
[ 9.00, 3.00],
[ 9.00, 9.00],
[ 3.00, 9.00]]), array([[2.00, 7.00],
[ 1.00, 7.00],
[ 2.00, 5.00],
[ 2.00, 7.00]]), array([[ 2.00, 8.00],
[ 1.00, 9.00],
[ 1.00, 8.00],
[ 2.00, 8.00]])],
dtype=object) ,
array([array([[ 8.00, 8.00],
[ 8.00, 4.00],
[ 4.00, 4.00],
[ 5.00, 7.00],
[ 8.00, 8.00]]), array([[ 6.00, 7.00],
[ 5.00, 5.00],
[ 7.00, 5.00],
[ 6.00, 7.00]])], dtype=object)], dtype=object)
1...
array([array([[ 25.00, 14.00],
[ 25.00, 4.00],
[ 15.00, 4.00],
[ 15.00, 6.00],
[ 23.00, 6.00],
[ 23.00, 12.00],
[ 15.00, 12.00],
[ 15.00, 14.00],
[ 25.00, 14.00]]),
array([array([[ 20.00, 10.00],
[ 20.00, 8.00],
[ 12.00, 8.00],
[ 12.00, 2.00],
[ 20.00, 2.00],
[ 20.00, 0.00],
[ 10.00, 0.00],
[ 10.00, 10.00],
[ 14.00, 10.00],
[ 20.00, 10.00]]), array([[ 11.00, 9.00],
[ 12.00, 8.50],
[ 12.00, 9.00],
[ 11.00, 9.00]]), array([[ 10.50, 8.50],
[ 10.50, 7.00],
[ 11.50, 7.00],
[ 10.50, 8.50]]), array([[ 10.50, 2.00],
[ 10.50, 0.50],
[ 11.50, 0.50],
[ 10.50, 2.00]])],
dtype=object) ],
dtype=object)
2...
array([[ 14.00, 10.00],
[ 10.00, 10.00],
[ 15.00, 18.00],
[ 14.00, 10.00]])
... sort of retired...