First, I believe your ordering specification has to actually access a field in the related model (i.e., be something like ('foo__name', 'bar__name') in order for the problem to arise. Ordering just by ('foo', 'bar') works fine (but there you are ordering by their primary key IDs, which doesn't tend to be terribly useful in general). When you add in access to a field, the ORM has to join in the related table, and since it uses an inner join for this you get 'dropped' records from Bas. This has been reported as a problem:
http://code.djangoproject.com/ticket/7181but that ticket hasn't been reviewed yet so no feedback on if/how it will be fixed.
The issue of the admin returning a 404 when you try to edit one of the objects that has null for the ForeignKey probably has the same root cause. I verified the query resulting from the admin trying to look up by primary key is also using an inner join to all the related tables but didn't track it any farther than that.
Karen