I think the global shared symbol space will cause some confusion (patches
will have to protect their sends and receives, etc., by fabricating local
names using '$' characters.
Also, it won't be possible to run several Pds concurrently on several
threads - in a threaded environment, each Pd instance will have to lock
all others out while it runs. (There might be a fix for that by replacing
all static variables in Pd by thread-local ones, but this is untested and
I'd hate to do it unless there's a real need for it, since it would involve
systematically changing 100s of variable definitions in Pd.)