The bug
As stated in MC-45743 and MC-48239 it is intended that skulls and pumpkins are not dropped when they cannot be equipped for a mob in front or cannot be placed to spawn a mob (wither, snowman and iron golem). However, armor, shields and the elytra are dropped when they cannot be equipped.
Expected behavior
Armor, shields and the elytra are not dropped when there is no mob in front which can equip the item.
Code analysis
Based on 1.11.2 decompiled using MCP 9.35 rc1
The method net.minecraft.item.ItemArmor.DISPENSER_BEHAVIOR.new BehaviorDefaultDispenseItem() {...}.dispenseStack(IBlockSource, ItemStack)
calls the method of the parent class which then drops the item.
Can confirm for 18w50a, can I request ownership of this ticket?