Yes, I know about MAngband. Let's pretend it or its source code doesn't exist for now.
Its not that hard to implement (and uttering those words I've undoubtedly made a rod for my own back which will come back to haunt me in no uncertain terms in the near future).
Here's why: think of the typical state changes that occur in a roguelike. Its easy enough to categorise them into three frames of references: the player, any other actors (i.e. monsters) and the environment.
Let's take the viewpoint of the player first: aside from movement and attacks, most other player-centric operations effectively only involve (to the outside observer) a juggling of statistics. Since we're a roguelike, we're operating in a strict turn-based paradigm. In a co-operative environment, actions from another player would only involve more juggling of statistics (e.g. buffing, healing and so on).
From a monster viewpoint, a player either moves, attacks or does something else. This is the same for one player or another.
From the environmental perspective, items get picked up or dropped, the dungeon may get altered slightly. Whither it is one player or another that is the catalyst for this behaviour is irrelevant.
I would suggest that it is perfectly feasible to implement an API to allow two (or more) players to play in the same game (using a strictly turn-based system). There would be limitations of course - handing going up and down stairs (if you have non-persistent levels) would be tricky, and monster AI would have to be adapted to handle more than one foe (something the faction idea could help with).
Now is all this of course desirable? Balancing the gameplay of roguelikes is a horrible job at the best of times (sometimes it can take years) And the issues surrounding the interface of connectivity and gameplay are enormous (see these threads on r.g.r.d for some examples). And of course the final point: I've not even released a playable demo yet, so why am I discussing a feature that may never be implemented?