Of course the answer to this is "it depends".
Using your external API layer to build your application has some real advantages. It validates the layer, making sure that your API is complete. It also allows you to do things like separate the tiers of your application, allowing you to scale the different layers much more easily.
Ultimately, I really prefer building my applications this way, unfortunately, as with all things, there is a cost. That cost is usually performance. Going through SOAP serialization/deserialization is usually a significant performance hit, and usually gets shot down when you realize that you can double your performance by binding to the business logic without going through that deserialization/serialization request/response cycle. My usual compromise is to use the same API that the webservice API exposes, but using a direct binding client.
This cost could be totally irrelevant for your application though. If you are careful to keep your API very coarse grained, and thus minimize the number of calls, the cost of the SOAP messaging might be low enough as to be unnoticeable. As with all performance concerns though, do not assume, measure. The thing that you think is slowing you down might be totally subsumed by some other component or layer.