Thanks Tom, that makes a lot of sense. I'd not considered the relationship to the commands, but I do see why Digi have chosen to implement the parts of the Pin API as they have, given the AT commands available.
Why did you suggest a pull up? Just because this is open drain logic or another reason? The slave device takes care of the 'pull up' in my case. In fact, it's a little more complex and is a signal that oscillates but sits around 1V (the pin is multi-function). This raises an additional question though...
While the XBee pin might be high impedance when set to input, it still has a digital input buffer engaged. Generally they don't like this kind of voltage. I'm not sure if I've read whether the XBee3 IOs are schmitt-triggers although I'd guess they probably are for this kind of product (and the 0.3Vcc/0.7Vcc spec). I've chosen however to set the pin to ADC rather than input, which I assume will deal with this issue (but is only available on some pins).
Cheers, Ross