There seems to be a growing community of people saying that you should never return null and should always use the Null Object Pattern instead. I can see the usefullness of
The null object pattern only makes sense when there's a reasonable, functional value for the null object to be. The purpose isn't to defer null, as you've described, but to completely eliminate the idea of null by representing the nothingness or emptiness with an actual piece of data that is still functional. For example, the natural case of holes in a tree structure, as described in the Wikipedia article.
A null car doesn't make sense. In this case, it seems like the more appropriate thing would be for getCar() to return Optional.