I have noticed this recently, and I'm not gonna play multiplayer until it gets fixed.
I was playing with a friend of mine, simpel enough scenario, and he's hosting. However, trying to extend the tunnel he was digging, the blocks destroyed instead get immediately duplicated in the lost one's place, yielding no resource and wearing down my tool. The same for items placed, only they immediately dissapear.
However, whenever the host is nearby, that doesn't happen. It is annoying and wastesful of time, patience, and resources.
TBH sounds like an issue with your host, not you or minecraft.
Have you tried to host the server for you and friend?
Yes, just. Of out 4 sand blocked he mined while I was many meters away and facing away from him, he says that 3 of them duplicated back into place and that only one sand block was destroyed and gave the resource.
This is often an issue of lag on the host's part. We run a multiplayer server, and this only starts to happen when there is about 5+ of us on at once.
Minecraft uses a lot of bandwidth... and I mean a LOT. Often times, a typical internet connection doesn't have a very good upload speed (which is what his connection is using to send you data). When you're in the same chunk as him, it is quick to send the data to you, as it's only sending 1 chunk's worth of data. Once you move into separate locations, it's sending a lot more data, and thus your client is out of sync with the server.
Another thing to check is if he's running the most recent version of the server. Notch fixed a majority of that block-respawning issue a few weeks ago, so might want to double-check this.
My only other suggestion is to find a better connection to host your server on. Sadly, with Minecraft sending so much data (approx. 200 Gb per month for an averagely-used 8-player server), it is expensive to find a host that will allow this much data transfer for a cheap price.