It seems that images are only auto smushed when they’re uploaded through the WP Admin. A project I’m currently working on allows visitors to the site to upload images using a custom built form on the front end of the site. The images they upload are not automatically smushed.
After digging through the code it seems like the class responsible for smushing images – WP_Smushit::smush_image() – could be updated to allow for this situation. At the very beginning of that method there is a if ( ! is_admin() ) check that if is true, just returns $meta and doesn’t smush the image. Adding a filter here to allow developers to hook into and override this would be a simple fix.