Even block level deduplication has its limitations: It's true that it will only store the modifications (at block gannularity, though) of one VMDK file during an incremental backup.
However, many companies are storing multiple VMDKs (many have 1000+), and these share many common system and application files. But they will be typically be located at random and mutually different byte offsets inside the VMDK files, so normal block level deduplication will not detect it.
Same goes for attachments in mail servers (like, Exchange 2010 no longer supports single instance storage of mails and attachments).
In these cases you need sliding window deduplication like rsync or http://www.exdupe.com/
Basically, block level deduplication works well between one backup set and an incremental set. Sliding window deduplication works well both within one backup set and between sets.