As for upsizing, if the image were already small, I would just want it placed on the page normally, which would depend on the container it was in. So, if not floated or anything, I would expect it to be in the upper left of its containing block.
I was actually surprised it upsized my image. Most batch resizing programs I have used, and the thumbnail generator in ADDT only shrink the image, never upsize it if its smaller than the dimensions provided.
I guess you could do this is in the code where you specify the height and width of the thumbnail, set the width to the smaller of the two values actual width, and requested width, and the same with the height.
Then it would 'resize' it, but not actually change the dimensions of the image.
Or, you could only resize the image if both the actual width was greater than the requested width, and the actual height was greater than the requested height.
I would think you would want this to be the default behaviour, since upsized images, particularly upsized by the GD image library, look terrible.