Then I read (in src/protocol.h) this means that the node only stores the last 288 blocks..
That isn't what it says. Service bits state abilities, not limitations, as they can be combined logical or.
If a node says NODE_NETWORK and NODE_NETWORK_LIMITED that means it can serve the whole history (node_network) and it can serve at least the last 288 blocks (node_network_limited). So, in fact node network limited means the same as node network means but with a limit... and if you signal both you satisfy both abilities.
NODE_NETWORK_LIMITED is for allowing pruned nodes to serve recent blocks. Currently, it isn't really used.
Sure it is, it isn't turned off when pruning and
https://github.com/bitcoin/bitcoin/pull/10387