I thought about that but 2 points here dissuaded me from doing so:

This is the same way we handle recursive calls for child nodes for a watched plan that only requires watching the root (see line 271) so I don't think anything is relying on a null result to indicate that something is being watched or not.

This was also the cause of not being able to load another project that I was seeing.  The block of code in project.js:991 tries to unwatch the project and rejects loading another project if there is an error.  I would need to change that block to ignore a specific error code that said that this is basically not being watched and search for other places that are calling _watch() and _unwatch() to do the same.  

Let me know what you think.