If the datafile is fragmented or the space was once used then maybe deleted/shrunk, I think you cannot reduce the size of the datafile at that point. The only course of action is to export, delete data, THEN coalesce, and THEN reduce datafile size and import data.

That is at least how I understand it.
- Magnus