Nonetheless, it's a lot more complicated than it would seem to "just reclaim the space".
In our use case we're making very heavy usage of table partitioning (over 500 partitions for some of our very large tables). Because each partition is effectively another table under the covers, if we were to use innodb_file_per_table then we'd have tens of thousands of files. This means a lot more file handles being opened/closed (as well as the obvious ulimit gotchas for the uninitiated). This noticeably hampered query performance when seeking data from random partitions.
Current shop is not running file_per_table, and has little reason to do so at ~30GB database file size. Still, dropping the table and not reclaiming any space was a rude awakening. Combine that the fact that storage was an AWS EBS sized pretty close to its limit (50GB). I could not perform two iterations of a test import without first rm'img the file. Lame.