The *precise* meaning of fsync has some wiggle-room, as you noticed.
It's physically impossible to be absolutely sure of retrieving your data after any kind of crash. No storage device is immune to weird failures.
So it would be pointless to define fsync to mean that - it could never be implemented.
fsync is just a way of asking "please do what you reasonably can - flush delayed writes, etc., so I can expect the file to be in its current state after a crash following the fsync provided no really weird mega-corruption failure happened".