In short: as the ROS nodes for nxt don't run on your brick, you are free to use any code / library you want (as long as you can run it on your laptop/pc).
Longer answer: The nxt_ros
package is 'nothing more' than a wrapper around the nxt_python Python library. This enables bidirectional communication between ROS and the NXT brick.
As the rest of your ROS nodes "don't care" where their data is coming from or going to, you are free to use any other nodes, as long as their messages are compatible.
This is actually one of the fundamental tenets of component based development: keep implementation specific details 'locked up' inside your components, while using suitable connectors to exchange the proper messages. Ideally, no knowledge about you using the NXT as an actuation platform is ever present in any of your nodes, apart from the nxt_ros
package (cum suis).
Answer to the edit: yes, your computer/laptop will need to be running all the time. As I wrote, the nxt_ros
package is just a wrapper around a library, facilitating communication between your computer and the brick over usb/bluetooth.
According to this page, the brick has a 48MHz ARM7 with 64KB ram. While perhaps rosserial_arduino could be adapted to run on it, the brick is in no way powerful enough to run a full blown ROS.