Thus, any applications that would depend on pinpoint precise location are going to have problems anyway. It seems the moral of the story is (as an application developer) to use the location services as an advisory (but not as an authoritative) service. The user should be given the capability to override or further specify his/her location.
If the Skyhook one returns results, your "accuracy" will probably be within a hundred feet. If you want, you can add your own access point so your iPhone will now where exactly home is: http://www.skyhookwireless.com/howitworks/submit_ap.php
The research in the article only targets Skyhook’s WPS system. From Skyhook's form, it's clear that they use the access points MAC address as an identifier. I hope that the researchers did not spend too much time and money to figure out that all they needed to do was spoof some MAC addresses.
From Skyhook's side, they should be able to get better accuracy by using multiple access points and signal strength to refine positioning. Of course that assumes they have sufficient access point density in their database for you location.
From the iPhone's side, it can check that the Skyhook results are within the GSM tower results. The GSM tower results are presumably more reliable and more difficult to spoof (compared to buying a $50 access point).