The description attribute is implemented as a multi-valued attribute in the schema for the cases where that is allowed.
For an object that is not a SAM managed class, the description is multi-valued. For an attribute that is a SAM managed class, the description attribute is single-valued.
SAM managed classes are for things like security principals so, if you have, for example, a container, or a class of your own, the schema will let you use multiple values. This behavior of the description attribute is for backward compatibility with earlier operating systems because the attribute existed in the SAM APIs before AD existed.