My opinion is that the zero object pattern is a good thing and a trade ;. Using this, you can program your view to deal with Foo objects, and all of them (including zero) will act correctly.
The beauty of this template is that it works regardless of whether the null value is possible only alone or as part of a collection (although the latter case should be, IMHO, very rare).