We used it in a project about a year ago.  I'd say that the tutorials are not the best.

We used it in a workflow scenario.  People who where interested in following a contract through the workflow were automatically subscribed to the contract (interested meant that they were either creating the contract, had to approve the contract, or were a manager of the people who created or approved them). 

Whenever the contacts state changed we fired an event - but we didn't want and e-mail to go out whenever the state changed (the users would see it as just more spam) so we collected all the state changes and put them into an e-mail that went out between 12 midnight and 3am.  When they came in in the morning the people had a list of contacts they had to approve and also a list of the people who were holding up the process. The e-mail's were all html formatted using an xslt file.

We also had notifications that went out that directly affect a particular user.  If they were next in line for the contract they were notified. 

We had not quite gotten to the point of using alternate forms of notifications, but we could have added it pretty quickly once we got the e-mail notifications working.

My overall impression was that it was quite a bit of work to get this setup, but once it was it worked pretty flawlessly.

Rolling our own was certainly possible, but it would have taken much longer to test it.