With respect, if a user is removing a plug-in the developers cannot know whether it is being removed permanently, or removed to be reinstalled as part of addressing a problem (in which case deleting the data might, or might not, be the correct thing to do).
In some cases (e.g. an event calendar with – possibly – 100s or even 1000s of events) removing the database tables might be the last thing a user wants to do, and could well be the last thing an unsuspecting and annoyed user ever does with any of that developer’s products.
To my mind it is probably better to leave the tables in place to be cleaned up by some clean-up plug-in at a later date. At best the plug-in deactivation (if possible – I’m not a plug-in developer) ASK the user. A setting is fine too, but that presupposes the user will actually find it (yes, my site has a few disused tables that I’ll have to clean up some day).
It’s a matter of experience. Learning how different developers do things a little differently. Some will delete the data on uninstall, some will leave it, and some will give you the option with a setting or a question at deactivation.
I know one thing beyond all reasonable doubt. I dread to think how much I’d have to pay for commercial software that does half of what free WordPress and its free plug-ins does.