If you are streaming a texture, the cost of of the format change to make the texture swizzled/tiled is going to be quite big next to the performance loss of the texture not being tiled/swizzled. However is a texture is static (or it's contents are generated by the GPU and the GPU has the hardware bits to tile/swizzle it during render) then one wants it tiled/swizzled.

So... really back to exactly that which was stated in the beginning: provide an additional set of internalFormat enums that say "I want the texture linearly stored so I can map and stream it".