I don't think it makes sense to search for [('address', 'in', [])] to get all items with no address. 'In' statements are used to search a list of values for a matching item. If the list of items is empty, then no items should be found.
To search for an empty list, logically I would use [('address', '=', [])]. Is that possible to implement?
AIM 2: As you mentioned this behaviour is definitely wrong and should be fixed (provided a simple fix in bug 655889)
AIM 1: Searching for empty lists
I don't think it makes sense to search for [('address', 'in', [])] to get all items with no address. 'In' statements are used to search a list of values for a matching item. If the list of items is empty, then no items should be found.
To search for an empty list, logically I would use [('address', '=', [])]. Is that possible to implement?
AIM 2: As you mentioned this behaviour is definitely wrong and should be fixed (provided a simple fix in bug 655889)