I'd be curious if having to upload textures is just a feature that's a hold-over from a history discrete desktop GPUs.
Videogame consoles have been doing "zero-copy" textures since they existed(except if you're on the PS3, but we won't go there). You also have things like EGL_image_external[1][2] that get you the same thing in OpenGL ES.
Note that even if you share DRAM with the graphic chip, you may take an extra step anyway to rearrange the texture in a tiled format since it's more efficient for sampling.
If you really care about load time you can decode the image directly in a tiled layout in software but that's more annoying.
Yup, in games we used to call this "asset cooking" where you target the platform specific texture compression in addition to tiling that you get as a part of that format.
You get a nice 3-6x memory savings plus put less pressure on the texture samplers as memory bandwidth drops as well.