Hi Pim,
This is quite the challenge that we plan to adress in the future by having table-valued functions as datasources. This would allow for conditional logic to evaluate the incoming filters within the function, for instance a null-check.
Until that time - The last solution is indeed the only solution that seems very close to achieving your goals. Instead of using the identity as filter for the look-up, you can add an expression field:
code:isnull(t1.identity_column, 0)
Instead of including a record with a null value in the view, you'd include a record with a 0 value. Make sure a the real identity value can never become 0!
Not very elegant, but it does get the job done.