So this is weird, wondering if perhaps SFDC is just returning "wrong" information.
I'm working with layouts for an object, and in the interface I have set a field in the default layout (there are no other layouts) to "required".
But, when I retrieve this layout from the API, the field in question's "nillable" attribute is TRUE when it should be FALSE.
Does salesforce expect data like this to be retrieved from somewhere else? Regardless it seems the API is lying.
The API is not lying - the field is only required by that particular layout, not by the underlying system.
If you want it to truly be required, you need to set this attribute on the field itself.