Currently I2CExternalPins and I2CInternalPins have private fields, and there is no into_inner() or similar. As far as I can tell, this means that it is impossible to take ownership of these pins without losing their specific pin type. The type would be nice when moving these pins to a library crate that doesn't depend on microbit but does want to know which microbit I2C interface it is working with.
As far as I can tell, there's no reason not to make these fields public. I will submit a PR.