As much as I know the internal ID remains the same (i.e. will not change for the object) as long as the database file has not been defragmented. If you defragment the file you should not relay on the old ID (from the time before the defragmentation) and obtain the new ID of the object you use.
You can also save the name of the user instead of its ID in session (or in cookie if you use ASP.NET Forms authentication) and use a query to obtain the user's object from the database.
I posted a blog post about this yesterday, the solution presented might help you.
http://db4o-tools.blogspot.com/2006...aging.html