In general, I agree with VT that Web services are a good best practice as they help abstract the data. Some costs are: installing and configuring them, performing security reviews, maintaining the abstraction, error handling, etc. Some of these costs also come up for the other approaches.
Patrick Halstead [InfoPath MVP]
InfoPathDev
Patrick Halstead
Project Manager at Qdabra