You're always going to have "cross-tier" connections, or else you won't have very useful tiers. The goal is to keep the dependencies unidirectional. In the description provided, it sounds like your UI depends on the "middle tier", the "middle tier" depends on WCF services, and the WCF services depend on your DAL (Data Access Layer - I prefer that to DBO). While this sounds like a lot of logical layers, as long as there are no dependencies that go back "up" the tree, there doesn't seem to be a significant issue from what I can see.
I think there will be a boundary between your middle-tier and your service layer (WCF). Usually, service layer is kept separate from business-logic layer. A connection will be there between them and that connection should be the proxy class that sits in your middle-layer and represents the service layer.
When you instantiate this proxy class, you're "establishing" the connection.
You can expose WCF service or you can consume service class directly. If you expose WCF service you need to add service reference for consuming it. In this case you need to create connection and you have cross-boundary communication. If you want to consume just class (without any WCF hosting features) you need to add reference. There is no connection because in reality there is no WCF - it is just method call as any other.