nil doesn't "expand", it's just what it is. You have to bear in mind that methods are roughly syntactic sugar from
func (o *Object) ReturnSomething() int
to
func ReturnSomething(o *Object) int
In the first case, it may "seem" that a nil Object would be invalid, but in the second case it's obviously valid, and makes complete sense. It may be described as a "wart", but it makes complete sense to me. The issue is, in my opinion, that people drag their own expectations into programming languages as they learn them.