I'm not convinced that there is an actual bug in this use of the Get-View cmdlet.
As you said in your first reply the childEntity property is an array of ManagedObjectReference elements.
Even if there is only 1 child in the "Colors" folder the property is still an array (albeit of 1 element).
You can check with
(( Get-View ( Get-Folder "Colors" ).ID ).ChildEntity).Count
(( Get-View ( Get-Folder "Colors" ).ID ).ChildEntity).GetType()
If you loop through the elements of the array the Get-View cmdlet functions correctly
( Get-View ( Get-Folder "Colors" ).ID ).ChildEntity | %{Get-View $_}
In this case the $_ represents each object (which is ManagedObjectReference) in the ForEach-Object loop.
What I don't get is why this is working
( Get-View ( Get-Folder "Colors" ).ID ).ChildEntity | Get-View
Is there an implicit loop through all the elements in the array?
By the pipe or by the Get-View cmdlet?