Although they were written for a very different modelling paradigm, SNMP, most of the modelling guidelines contained in RFC1493 and enhanced in RFC3512 are relevant to CIM modelling:
Start with a small set of essential objects and add only as further objects are needed. Minimising the total number of objects is not an explicit goal, but usability is. Be sure to consider deployment and usability requirements.
Require objects be essential for either fault or configuration management.
Consider evidence of current use and utility (i.e., look to see how the parts of the model you are considering extending are already used).
Generally exclude objects which are simply derivable from others, but consider the impact on a management application. If an object can help reduce a management application's complexity, consider defining objects that can be derived.
Avoid causing critical sections to be heavily instrumented (i.e., do not add lots of statistical counters to a piece of code for which high-performance is required).
In the modelling of the PBX example below, I try to follow these guidelines.