I do apologize, the developers are obviously not lazy. It's more likely just not a priority. I havn't gone over the source enough to comment on the design either.
However, and I ask this on a "I would really like this fixed" basis, wouldn't adding:
if (this.ScaleFactor > ScaleFactor.OneToOne && newSF < ScaleFactor.OneToOne)
{
this.ScaleFactor = ScaleFactor.OneToOne;
break;
}
to the "public virtual void ZoomIn(double factor)" function of the DocumentViewer class's do loop after the newSF declaration fix this problem?