Not sure - we're breaking new ground here unfortunately.  The current behaviour is to only return aggregates, which is what is required to work with naive users that aren't aware of the distinction between aggregates and other types.  Of course, we also need to be able to retrieve non-aggregates, particularly the true self contact (not the aggregate of the self contact), and so we currently will return any contact fetched by its specific ID, whether or not it is an aggregate.
An alternative behaviour would be to suppress update notifications for contacts which are not aggregates, which might be more appropriate?