Specify, please. If you mean connecting game clients directly without using the server, there are good reasons why this is rarely done.
The primary one is synchronization. You want the game having the exact same state in the same time, regardless of the client being used. The most intuitive solution would be to have only one instance (server) to decide what's happening and force the other ones (clients) to conform. Otherwise you would have to find some other ways to decide which version of the events in-game is the correct one. Or perhaps combine them somehow.
And the situation begins to be even more complicated when there are more than two clients. You need to figure out a way how to connect them to avoid sending back and forth redundant data - so connecting everyone with everyone is not a good option. On the other hand, you also probably don't want the situation when one player leaving the game disrupts the entire flow.
No. The reason P2P is rarely used for multiplayer anymore is to:
A: prevent modding, reducing the lifespan of games in order to entice users to buy into the inevitable sequels.
B: to literally shut off multiplayer in order to force players into buying the inevitable sequels.
C: make multiplayer broken for pirated games.
D: and least important: to provide a consistent experience to all players and prevent cheating.
Few of those have anything to do with why p2p isn't used for multiplayer games, in fact it's usually the opposite. The way "p2p" systems usually work, you join a lobby, then when the game starts it talks to a master server which assigns one player as the host. To make sure everyone is playing by the same rules, the game is usually pretty locked down. This prevents (in theory) people from joining what they think is a normal game and ending up in a low-grav instagib because whoever got assigned to host wanted it that way. In practice, more technically savy users can subvert the system and modify the game anyway. Other issues include high latency because most people have low upload speeds, NAT issues, and the host having an advantage or disadvantage depending on how the netcode is set up. Once the developer no longer wants to support the game, they shut down the servers and you are unable to get into a lobby. The game pretty much dies until someone finds a way to emulate the lobby function or join a server manually.
With server/peer multiplayer games, the developer either provides a dedicated server binary, or hosts their own servers. Usually the former. If you want to start a server, you simply download the binary and run it on a dedicated machine. Usually people rent a server in a datacenter because they have good bandwidth and uptime. Although it is possible to run a dedicated server on the same machine as the game itself, it is rarely done and isn't considered a good practice. Games with dedicated servers are usually more moddable because the player has a choice which server to join instead of being forced into one. They also allow for server administrators to immediately ban or otherwise punish disruptive players. With something like IWnet, you can't give anyone this power because you don't know who the host will be.
As far as piracy goes, I don't have much experience with that. It does seem like it would be easier to simply bypass the genuine game check on a dedicated server binary than to write a lobby host and then mod the client to connect to that lobby. It would be rather easy to set up a website with a list of cracked dedicated servers.
The only central point of failure for games with dedicated servers are the servers which provide the list of servers to play on. As I've said before, it would be trivial to simply set up a website with a list of dedicated servers, and usually games with dedicated servers allow you to directly connect to an ip.
Another point I'd like to make is that while I, and many other people refer to systems like IWnet as "peer to peer", that isn't technically correct. Almost always one machine acts as a host which determines the game rules. As an example, if I press the "fire" button on my mouse while my crosshair is over another player, that gets sent off to whoever is hosting (be it a dedicated server or another player) and that machine determines whether or not I hit the other player, and then that machine would sent out the results to myself and the other players. In a p2p system, my client would be responsible for telling everyone else that I shot someone, and there would be no "referee". This is extremely bad because it allows me to use a hacked game client to simply spam "I killed you" messages to everyone else.