The EUI provider function only gets the index of a device within it's device type. Using NETDEV_ANY with two devices of different type causes the EUI provider to be used for both (since both interfaces are index 0 of their type). To prevent this, require EUI providers to be locked to an interface type.