Good post! JSON support, as well as database binding are often the top things that stop me for building a more semantically-precise domain model.
Next is probably dealing with backward compatibility once you realize you didn't have the right semantic model in the first place...