An interesting question would be how to generalize this to update
remember templates accordingly.  Possibly the best approach would be to
have a defining form that would define a project in a single
s-expression, adding both remember templates and agenda entries, and
then that form could be removed all at once.  Something like

(org-add-project newproj
 "A sample new project to show the greatness of org-add-project."
 (agenda-files (find-lisp-find-files "~/newproj/" "\.org$"))
 (remember-templates
    ....))

[The above wouldn't work as written, since it's syntax is a mess of what
would be handled by a macro --- the "named arguments" like agenda-files
and remember-templates --- and what looks like a functional argument ---
the find-lisp-files --- but something like it could be lashed together
if anyone was interested.]

Sounds great!
I like your idea. :)