That's something I generally avoid. I don't like to see images get blown up beyond their actual size. That's my reason for
max-width:100% as opposed to
I guess it's a difference in how you define a responsive image. I think of it as just one that's not ever going to spill off the side of the screen, as opposed to one that's constantly adapting to every change in the screen size.
Here I think we do have wires crossed. I'm not sure about why you mention small images. I see that code as inert to small images, as they never get squeezed by the screen sides.
The bit about images overflowing, I'm talking about the default behaviour of images, where if it's 800px wide, it stays 800px wide, even on a 320px screen. My point was: you don't really want that to happen, so IMO it's quite safe to apply
max-width: 100% globally to images so it's never going to be a concern. Then
height: auto goes without saying you want to keep correct aspect. Then in the very rare instance that I want some other behaviour, then I would create a class to cater for that.
I accept the idea that global styles or class-dodging can cause a headache in some cases, but I see this one as a fairly safe bet where a class is redundant, or look at it as changing the default behaviour of images to something more conducive to responsive design.
Yes, the chances are most images, or their container will still want a class applying, but it's also likely I'm going to want to repeat those same two lines for those classes, so I just get them out of the way from the off.
I've not had nearly as much experience as you and for most of my work I have had the luxury of being the sole coder with control over everything, so have not gotten caught up in that.
But more recently I started a job where I'm working on a site (both front and back-end) built by someone else, and it's not much fun trying make sense of another's code and put things in order, though not much of that has been css related.