Might I add that Get-Service is a PowerShell cmdlet. Get-WMIObject is not a PowerShell cmdlet.
I get what you were saying there, but the wording is a bit inaccurate. Get-WmiObject and Get-Service are both cmdlets. They just have different implementations and protocols (WMI versus whatever the ServiceController class uses, probably RPC).