Well, the term "channel host" means less and less these days. It's just a flag that designates one of the players as 'host', meaning you can use it to ensure that only one player is performing tasks such as executing the AI. I always advise using tno.isMine instead nowadays. In the current Sightseer branch of TNet I also made it possible to set TNObject's owner -- for things like players taking control of vehicles, or having vehicles follow other vehicles for example.
All that aside, TNet is indeed better for a player-authoritative approaches, where players do their own game code and the server handles communication / packet forwarding. You can certainly edit the server to add custom game code in there and offload more and more of your game code to make it more secure and prevent cheating, but it really depends on the type of game you're making. For majority of the games, going with the former approach is perfectly suitable and is much easier to boot -- which is why TNet is designed with that in mind.
Also, saying that TNet is P2P is misleading. It's not. With TNet you always connect to a server. This server can be hosted remotely on a dedicated box, or executed virtually within your game, but you always have a client-server model to work with.