Absolutely, that is fine.
You really can think of MicroPython running on an XBee 3 device completely separately from any programs you run on a host device (such as Python in your case). The XBee 3 device is completely agnostic to what kind of program is communicating with it.
You could do any of the following:
- Have no MicroPython program on any nodes of the network, and do all the programming on one or more hosts. (This is the only option when using just older XBee models that do not support MicroPython programmability.)
- Have no programs talking to the XBee 3 at all, and run only MicroPython on nodes in your network. (That wouldn't be a very useful network without a way to get data/messages out to some host, but nothing's stopping you.)
- Run MicroPython on one or more XBee 3 nodes, and use Python/Java/C/C++/any programming language (or manual entry of API frames if you're desperate!) to manage communicating with the XBee 3. You can use User Data Relay API frames to communicate between MicroPython and the serial port.
Hope this helps.