Each subimage is potentially a separate image that can have a different data type.  There were a few fields describing the image (just in IC, not for the rest of OIIO) that were per file, but properly should have been per subimage.  Note that MIP levels are different than subimages (you can have a file with subimages, and those subimages may themselves be MIPmapped) -- and we do expect/require all the MIP levels of the same subimage to have the same data type. I forget what specifically was broken that caused me to have to finally fix this as a necessary part of this patch.