Coming from other languages, I'd say rather than requiring:

y := Foo(x)?

Why not just:

y := Foo(x)

The compiler can logically say "if assigning the return values of a function to 1 less variables than it returns and the final type is error AND the final type of THIS function's return is an error, then return that nil value and err if err isn't nill". That would make much more sense to me (error bubbling up by default) rather than needing to remember to add the ?