If all you need to transform is the vertex positions, then I agree that there's no reason not to precompute the entire MVP matrix.
If you need to transform things like normal vectors and tangent vectors as well, you'll need more matrices. Probably your normals and tangents should end up in world space, or perhaps view space, so you'll want to transform them by just the local-to-world matrix, or the modelview matrix, but not the projection matrix.
Given this, it's possible to compute the positions in two ways - either by using one matrix multiply by a precomputed MVP matrix, or by doing two matrix multiplies, one going from local to world (the same matrix as for tangent vectors) and then from world to clip. If you use the MVP, you have to set two matrices per draw call, the MVP and the local-to-world matrix. If you use the second method, you only have to set the local-to-world matrix per draw call, since the world-to-clip matrix is constant for the whole frame. It's possible that setting one matrix vs two could make a difference in performance or memory usage in some cases. That's the only reason I can think of that using a precomputed MVP matrix might not be best.
All in all, I'd probably just use the precomputed MVP matrix unless you find a compelling reason to try it the other way.