VC and vsphere API give you way more power in term of infrastructure management. Once you have the view of the object (get-view), you can do a lot of things on it, all through API call. One immediate challenge with managing vms via the host shell is that you always have to figure out where the vm is running at any moment. That is not an easy task if you have to rely on querying the hosts.
You do have to spawn up a windows VM to use powershell/powercli. VMware does not have a python SDK for vsphere API yet, so that is out of the question. To run it from a unix/linux system, I think your best bet is perl at this moment.