I would answer yes to many of questions and warn you about the paths. You miss the very fundamental thing about SOA. First, you need to understand what Service Inventory means before you do any web services development.
Service inventory can comprises three basic service type:
Entity Services - this kind of service works with
data-related issues - CRUD. Yes, querying databases.
Utility Services - this kind perform infrastructure works like
send e-mail, "logging", etc.
Task Services - this orchestrates other services (entity, task and
utilities) and actually perform the business rules.
For example, an UI application may call a Task Service, which in turn call other two Entity Services, perform the business logic, notifies users by mailing them, call another task service which also may call other services type.
But you need to take care about this. Coupling services would mean coupling infrastructure. Have a look at SoaPrinciples.com, by the book and go to SoaSchool.com. there's a lot to understand before write services with quality.
I'm implementing a ecosystem totally based on this concepts using WCF. Part of it is already on production and I have no problem about performance at all. Instead, users are really happy. But it is not so easy, I wouldn't relay on standard programming style. There was a mind-shift on programming style and I had to master concurrency issues and parallel programming. Best thing I ever did! I still can't use the true potential of my multi-core server.
good luck!