One of the best use cases is implementing abstract data types and hiding the memory management and other potentially unsafe optimization tricks behind a clean and high level abstraction.
Also since it's a logical/mathematical construct and not attempting to model the real world (like business logic), it's one case where inheritance hierarchies will remain stable.
I think people are being lazy, in a selfish, tragedy of the commons sort of way.
When standing in line, they all watch the customer stand there doing nothing as the cashier checks out items. If only they'd bag their own things, we'd all be able to get on with our lives that much sooner. Instead, they continue standing there doing nothing, as the cashier now bags their items.
Then the next person in line moves up and also just stands there, also unwilling to do anything to help speed things along.