I always read that the [namecanvas] is obsolete. That's not true.
One can address a subpatch via "pd-SUBPATCHNAME", but that does not work with the toplevel-patch.
Actually it does with "pd-FILENAME.pd". But it's not a good idea (nor intended I guess) to make the patches internals depend on the filename. - Filenames may change and thus break the patch. Eg. if you improve a patch and save it to a new file, you would always have to rearrange that name as well...
And, more important, if you open several patches with the same name, you will get nameconflicts! (One cannot use "$0" in the filename, ofcourse...)
So in short: [namecanvas] is needed. Eg. for GOP-abstractions!