This is the whole point. bukkit does not iterate through multiple stacks multiple times to remove from multiple stacks