An internal constructor of the CollectionView class
internal CollectionView(IEnumerable collection, int moveToFirst)
creates an enumerator locally and does not dispose it properly.
Even if this fact has no drawbacks when dealing with pre-defined enumerators, it can be problematic and dangerous in case the underlying collection enumerator takes into account synchronization or requires to be disposed in the same thread that created it.
Since one of Microsoft best practices states that IDisposable objects should be wrapped inside a 'using' block (like the foreach does), and I tend to think that enumerators are not supposed to be shared among different threads, this can be indeed considered a bug.
In short, the current implementation does not allow for a synchronous enumerator dispose.