What are the advantages of doing this instead of writing everything as
a nodelet and using the nodelet package directly to manage them?

Something you may not want to be a nodelet (like, say, rviz), could potentially run its own manager and load nodelets into its process space.

Josh