It doesn't look like the syntax of the Group-Object cmdlet was changed, as the following shows the same definition (along with the DLL where the method is defined) for both versions:

gcm Group-Object | fl DLL,Definition DLL : C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.PowerShell.Commands.Utility\v4.0_ 3.0.0.0__31bf3856ad364e35\Microsoft.PowerShell.Commands.Utility.dll Definition : Group-Object [[-Property] <Object[]>] [-NoElement] [-AsHashTable] [-AsString] [-InputObject <psobject>] [-Culture <string>] [-CaseSensitive] [<CommonParameters>]

But as PetSerAL mentioned in a comment it looks like the 5.0 DLL handles arrays differently than 4.0. For example:

$a=[PSCustomObject]@{item=@(1,2)} #Object with an array for the value of the item property $b=[PSCustomObject]@{item=@(3,3)} #Object with a different array for the value of the item property $a.item.Equals($b.item) #This deep compare is false, as the two objects are not equal $a.item.GetType().Equals($b.item.GetType()) #This "shallow" compare is true because both are the array type. $c=[PSCustomObject]@{item=@{key='value'}} #Similar but this time the item value is a hashtable $d=[PSCustomObject]@{item=@{anotherkey='anothervalue'}} #again comparing the two items we expect the result to be false if deep compared but true if shallow compared $e=[PSCustomObject]@{item=get-date} #another test using two datetimes (another common "reference" type) $f=[PSCustomObject]@{item=[datetime]::MinValue} $a,$b,$c,$d,$e,$f | group -Property item #now we see what happens when using group-object #Output in PowerShell 4.0 Count Name Group ----- ---- ----- 1 {1, 2} {@{item=System.Object[]}} 1 {3, 3} {@{item=System.Object[]}} 2 {System.Collections.Di... {@{item=System.Collections.Hashtable}, @{item=System.Collections... 1 8/5/2016 9:45:36 PM {@{item=8/5/2016 9:45:36 PM}} 1 1/1/0001 12:00:00 AM {@{item=1/1/0001 12:00:00 AM}} #Output in PowerShell 5.0 Count Name Group ----- ---- ----- 2 {1, 2} {@{item=System.Object[]}, @{item=System.Object[]}} 2 {System.Collections.Di... {@{item=System.Collections.Hashtable}, @{item=System.Collections... 1 8/5/2016 9:45:40 PM {@{item=8/5/2016 9:45:40 PM}} 1 1/1/0001 12:00:00 AM {@{item=1/1/0001 12:00:00 AM}}

Note that in version 4 the array values were treated as separate groups, but the hash tables are treated as equal groups. That means arrays had a deep compare, but hashtables were a shallow compare (all hashtables are treated as equivalent)

Now in version 5 the arrays are treated as equivalent, meaning they are a shallow compare similar to how the hashtables worked.

If you want to see the full details you would need to use ilspy or .Net Reflector to disassemble the DLL and compare the DoGrouping method of the Microsoft.PowerShell.Commands.GroupObjectCommand class. Hard to say if it is a bug or not, but it definitely is a breaking change for the group-object cmdlet.