Your arrays:
In [24]: x.shape
Out[24]: (2, 32, 32, 8, 16)
In [25]: y=x[0,:,:,:,[1,2,3,4,5]]
In [26]: y.shape
Out[26]: (5, 32, 32, 8)
Let's try y without the initial 0, i.e. no slices 'in the middle':
In [27]: z=x[:,:,:,:,[1,2,3,4,5]]
In [28]: z.shape
Out[28]: (2, 32, 32, 8, 5)
y is a copy, its own 'base`:
In [29]: y.base
But z is a transpose of another array. Note that the 5 dimension is first:
In [30]: z.base.shape
Out[30]: (5, 2, 32, 32, 8)
The fact that advanced indexing produces a copy, followed by transpose to get the indexing in the right order, is not documented. But I suspect it is key to the unexpected mixed basic/advanced shape.
We also see this in the strides:
In [34]: x.strides
Out[34]: (1048576, 32768, 1024, 128, 8)
In [35]: y.strides
Out[35]: (65536, 2048, 64, 8)
In [36]: z.base.strides
Out[36]: (131072, 65536, 2048, 64, 8)
In [37]: z.strides
Out[37]: (65536, 2048, 64, 8, 131072)
With an initial index of 0, the ambiguity that the mixed docs talks about is not obvious. It's more so if we try to select a 'diagonal' from x. Should the size 2 dimension be first, or last?
In [54]: z = x[[1,0],:,:,:,[1,2]]
In [55]: z.shape
Out[55]: (2, 32, 32, 8)
yis mixed basic (slices) and advanced indexing, with the slices in the middle. The advanced dimension, 5, is put first. It's awkward but documented (and occasionally appears on SO).