So i tried this command
execute as @e[tag=crafter] at @s if block ~ ~-1 ~ minecraft:dropper[facing=up]{Items:[{Slot:4b,id:"minecraft:diamond",Count:1b}]} run data merge block ~ ~-1 ~ {Items:[{Slot:4b,id:"minecraft:coal",Count:1b}]}
in theory it should replace every diamond in the dropper under the armor stand with 1 coal. And yes it does, but only if every armor stand has an diamond in the dropper below. What i expect is that only the armor stand wich hast the diamond in the dropper replaces the diamond with 1 coal and not every armor stand.
can confirm for 20w11a