Yeah I could see networking being tricky on xbox. Perhaps a tightly wrapped api with network contexts (Live, System Link, Local?). I'd imagine that communication with other xboxes would only be possible via obtaining a connection via a gamertag (and then only gamertags within the current users friendslist... or provided by the 360's own friends interface). Thus no connecting to arbitary IP's, messaging spamming or even transmitting data to unknown Gamertags. Obviously if the context given was Live the api would enforce the Silver member restrictions.
Abuse of data would also be an issue, there are a couple of ways of dealing with it; perhaps a light packet mode that would transmit data as fast as possible (maybe with some prediction services?) possibly with a set limit per frame or per client/peer? Possibly key value pairs - a big restraint but workable.
A chunkier non realtime version for non realtime events and maybe a full sync method (xml based? key/value collection? again maybe with a data limit?).
I could see something like;
LivePlayer livePlayer = LiveFramework.InviteFriend(); //goes to 360
LobbyMember lobbyMember = new LobbyMember();
lobbyMember.Name = livePlayer.GamerTag;
gameLobby.Add( lobbyMember);
// then maybe get a connection via that player. The context would be Live versus System Link (and perhaps Local splitscreen).
if(livePlayer.Status != LiveStatus.Offline)
{
XnaConnection connection = livePlayer.GetConnection(livePlayer.NetworkContext);
}
blah...
Obviously this is oversimplified and adding in voice as well might be tickier (gameVoiceChannel.Add(liveplayer.Voice) would be a dream

).
Probably not good enough for halo but maybe for simple games and an easy entry point into what is normally a world of pain. But hey I'm just thinking out loud here
