Well, I've been saying it for a long time now, and here's another reason why it'd be nice to have some exposure of the texturing pipeline to the shader writer. It might be nice, for instance, to have the ability to have LOD (and perhaps anisotropy, in some packed vendor-dependent format) information returned in a register. I mean, the hardware to produce the LOD is already there, why not make use of it instead of writing your own shader for the task?
Other things, like the ability to tell the hardware that user-supplied LOD values are coherent across quads would be highly useful (and, better yet, to enforce quad-level coherency for a subset of a pixel shader).
It'd also be nice to have access to the texture filtering hardware for user-supplied data. A quick example of where this all would come in handy would be bump map anti-aliasing: one might be able to, with a programmable texture unit, send all of the sample values resulting from a texture access to the bump map straight to the pixel shader. This would "split" the pixel shader into N threads, each one receiving one value of the bump map (and also set to be executed in serial in one pixel pipeline: this idea of a "thread" is distinctly different from the idea of multi-threaded execution, but I can't think of a more descriptive term at the moment, sorry). The split portion of the shader would then calculate all of the lighting information from the bump map, supplying a final color value to the filtering hardware to be averaged together in concert with the texture coordinates, recombining the N threads into one.
Now, if you think about this, such a situation would require two separate accesses to the texture hardware for a situation where the hardware usually just makes one access. So it would be rather inefficient compared to normal fixed-function texturing, but it seems to me that it'd be vastly more efficient than doing the LOD calculation in the shader.