This is not a bug. If you have small image why should you enlarge it and present a blurry mess to the customer. If you want higher res image - just start with one if such is available.
The system will shrink everything down to your images settings but will not enlarge smaller images.
EDIT: Regarding webp - your theme should support it. Go to your theme's config.xml and try to enter <webp>1</webp>
<webp>1</webp>
just at the end. Then go to Images, enable the now visible webp setting. Regenerate your images, wait until the regeneration is done then clear your cache and check if your front end displays them correctly. MAKE A WORKING BACKUP BEFORE THAT, most themes work but some badly coded ones might ask for jpg!
About lazy loading this setting is heavily dependant on your theme and is not set in Images but in your theme configurator (if such support is present). If there is no such setting you might try to use some module but I can not recommend a viable solution as my theme have it embeded.