Um, that's not entirely true. The objects won't be visible (for example) in DV, if you created the objects in PY or PD. If the correct procedures were followed, the object was created in DV and promoted to PY and PD. Thus, the object is visible in all environments, and it makes no difference which one you're logged into when building the update package. We've built about a brazilian update packages over the last several years, and we always build them while logged into DV. Not a single problem with that arrangement.
One thing that WILL NOT WORK is trying to build an update package from the deployment server, if the package contains new objects. The deployment server can't see new objects until a package is built and deployed. For new objects, you'll have to build your update packages on a fat client (we build all our update packages on a fat client). Strangely, this is not the case with full packages -- those can (and should) be built on the deployment server, and will include new objects even if the objects haven't been built into another package.
I tried to get someone at JDE to explain that obvious discrepancy -- the deployment server can see new objects for a full package, but not for an update package -- but the person I talked to was completely unable to explain (not the first "feature" of JDE that no one could explain).
It seems to me, if the deployment server can see the objects for a full package, it should be able to see them for an update package. Unfortunately, there's some fundamental and unexplainable difference in how the objects for the two package types are assembled.