The PlayerDestroyItemEvent isn't being triggered on the server in 1.11 when an itemstack becomes empty in PlayerInteractionManager.tryHarvestBlock (i.e. when placing the last block in a stack).
Also, since 1.9, when a held item (like a sword) gets broken the PlayerDestroyItemEvent is triggered before the held item gets removed, so when a PlayerDestroyItemEvent handler replaces the broken item with a new one the replacement gets removed instead.