Hi Phil,
I do agree on the fact that Use Cases should always conform UML specs, using the same technique (symbols, naming) for other purposes is out of the question! I've studied electrical engineering myself

(university, 4 years ago) and like discussions like these myself.
But I do think that the Use Case specifications leave room for different abstraction levels (I'm not a guru, so please correct me if I'm wrong). I use that room, just as Paul wants to, to include different levels of abstraction.
This also leads to testcases, coming from the usecases, that use different levels of abstraction (e.g. managment, financial department, the guy working with some GUI of the system,etc.) so that every actor / stakeholder has its share in testing.
If I'm wrong, I guess that an abstract / top-level Use Case (as I use it now) should be modelled as a package with a text fitting toplevel descriptions. This should be worked out untill there are enough details to write Use Cases in the strict sense. In this case I must make my first system decompositions (to subsystems, components) based on the package contents, instead on Use Cases, am I right?
By the way, my experience with Use Cases, is that they can contain overlapping functionality, so I try to come up with a non-overlapping and complete set of requirements. Those requirements are then, in my point of view, the takeoff point for designers and coders.
In general I think that Use Cases are readable for clients, but not a conveniant starting point for developers. And requirements are hard to read for clients and more practical to start development from. Depending on the client, I work out Use Cases, work with Use Cases resulting in requirements or even work directly with requirements. In the first case, I translate the Use Cases to requirements without the client.
Greetings,
Tjerk