I think BPEL is fundamentally flawed. I don’t think an execution language is the right way to manage orchestration.
Testify! Give me a declarative choreography than imperative orchestration any day.
BPEL is so constrained in its capabilities that almost all vendors have had to extend it to make it do more than just simple orchestrations, and these extensions destroy any potential value that BPEL might provide as a “portable” process execution language.
Right, you’ll never be able to take your BPEL out of one “engine” and plug it into another one. A “standard” which doesn’t enable interoperability or portability is worse than useless, especially one this enterprisey.
Update: added a vote-against link pointing to the Wikipedia page, thus killing two birds with one stone ;-)