It's definitely not CZML specific.  The general idea is that once data is parsed into a DynamicObjectCollection, it's no longer specific to any one data source.  Essentially the parsed collection (and corresponding visualizers and other DynamicScene functionality), will be the superset of everything we support allowing DataSource instances to be treated generically, regardless of where they came from.  Since we only support one clock per data source right now, it makes sense to put it at the data source level.  But I fully expect this to change when we move to tours and other stored views.