We can only say (in Spain):
Alguien está loco
I guess we think of it as becoming crazy, ending up crazy or behaving in a crazy way at some point in a person's life, and not as a feature that defines how a person is, which is why "ser" (when it only identifies or defines) sounds weird here. The adjective "loco" implicitly suggests that turn of events in a person's mental health, and definitions with "ser" and adjectives normally disregard space and time. However, in
Alguien es un loco
"un loco" is a person who is crazy, so we can identify or define someone as a person who is crazy (or become crazy). "Un loco" behaves like a noun here, and since nouns are used to define and identify things and people, "ser" is the only verb that can take nouns.
We need to bear in mind that words in a language do not have a real existence out of the minds and the culture of the people who use them. Certain concepts, ideas and words are seen differently by different countries, cultures, and speakers.
Casado and soltero were words that culturally could define what kind of person someone is for the society, even though nowadays no one would consider that so relevant, but "ser" is still used for identification documents. Used with "estar", it points to your personal circumstances (int time and space).
If this does not convince you, just memorize it.