The most common reason in programming: not known in advance!
I suppose I could code something like PlotRange-> {Min[data],Max[data]} (I have done it that before) and PlotRangePadding-> some small number (never dealt with it). And then perhaps also ensure I get nice round numbers for the ticks. It almost feels like I am working around a deficiency.
This all came about from me noticing that Plot[x,{x,1,5}] draws a line from corner to corner, but ListPlot[Table[{x,x},{x,1,5,0.01}]] does not. They use different defaults for deciding the ranges. It is a bit annoying for what I am doing, even if it is not the end of the world.
I suppose it is not that big a deal, because for any individual graph one can always fix it by hand, as you point out. It is just a nuisance that the default behavior treats x and y differently. Add to that the fact that entering the same value of the option changes the result (and even cuts off one axis), and one can almost call it a bug.
Thanks,
Otto.