For example, doing a second
identical "getblocks" request will not result in more "inv" replies, as the client
prevents retransmits.

Yes, the current prototype implementation modifies that. "getblocks" always results in one "inv" with [0-500] elements.
It also removes the filtering on previously transmitted block invs.  
see patch: https://github.com/sirk390/bitcoin/commit/17a27e3d56efa107697b53c193364a33951f1dd1