One drawback with the "number by package id" thing is it means you have number_id collisions between packages and you can't
easily move things between packages and you can't have a
generic dispatch routine (like the yourserver.com/obj/ID).
To make this concrete, take bug tracker on openacs.org.
There are two instances created: one for openacs.org bugs
and the other for openacs bugs generally. Often a bug submitted in one or the other instance should be moved
but as it stands the bug id's collide. Furthermore, patches
submitted to cvs with bug #s in them are ambiguous since
generally you just say bug X/patch Y and don't specify the
package #.
I think there is a lot of value to making moving things around
on the site easier and I think having a generic object dispatch could be a great thing (especially in the context of
aggregated site views like a new-content page and for searching).
If being able to ensure a range of object_ids are available, we could put a hook in to the bootstrap loader to start at some higher number so that you could find the highest number on the current site, start above that and hence ensure the range is available. Of course if you are merging two sites all bets are off, but I am not sure that's a big deal.