I'm a little uneasy relying on project- and/or calculate-on-the-fly when it comes to analysis. There's a lot of pressure to get things done and show them to the user quickly, and this leads to shortcuts. I can't count how many days I've lost tracking down problems with data alignment across layers that come from different processes only to discover that at some point a program(mer) decided that for expediency "we'll just ignore everything past the 6th decimal".
Unless one has the code, and the knowledge to understand it, the calculations behind on-the-fly transitions are invisible, it's hard to test their veracity, and impossible to tweak. For example, to use a raster geoprocessing analogy (I know your question is about vectors but it illustrates the concept clearly), when I project "manually" I can choose among nearest-neighbor, bilinear, cubic, spline, etc. depending on the nature of my data and the purpose the result is destined for. On-the-fly generally drops or hides things like this.
In the fullness of time I expect on-the-fly processing will be honed and tested enough to be reliable. I don't think we're they're yet, I could be wrong, but I remain to be convinced.