After trying channel modes +p and +s on a recent UnrealIRCd version (3.2 series), i didn't see differences between them: on a /whois or a/list command, the chan does not appear.
Although there is very little difference between +p and +s .. both channel modes are described in RFC1459 (section: 4.2.3.1 Channel modes). To remove one of them would render an IRCd non-compliant.
The list message is used to list channels and their topics. If the
<channel> parameter is used, only the status of that channel
is displayed. Private channels are listed (without their
topics) as channel "Prv" unless the client generating the query is
actually on that channel. Likewise, secret channels are not listed
But I'm saw that both private and secret channel are not listed on Unreal 3.2.
The list message is used to list channels and their topics. If the
<channel> parameter is used, only the status of that channel
is displayed. Private channels are listed (without their
topics) as channel "Prv" unless the client generating the query is
actually on that channel. Likewise, secret channels are not listed
But I'm saw that both private and secret channel are not listed on Unreal 3.2.
mIRC hides channels that don't start with a legal channel character (namely #).
Yeah, I would like to keep the discussion on this @ bugs.* ;).
Also basically I don't see any reason to remove +p.
What's a tad more likely is that +p might someday serve another purpose (like they did on hybrid etc).