Found it. The terrain object has a UV map. This causes the diffuse color to be overridden in multitexture view, as the texture under the UV map is displayed instead. Apparently a blank texture appears as white.
This won't affect the render, but if you want the texture display to be consistent, remove th UV map in Properties editor > Object Data > UV maps.