I was asking about the FITRIM ioctl in particular, which I thought might serve a similar purpose. After some more digging, the best explanation seems to be: http://lwn.net/Articles/397538/
FITRIM will only discard freed blocks in a filesystem. It does not punch new holes in a particular file.