The basic principle behind a Use Case is that it should provide some value to the actor who is corresponding with such a use case. Some use cases could be: Open New Bank Account, Register for BLOG, Transfer funds. Use cases such as: Update Database, Write Log Record, Begin Transaction do not really provide any value to the actor, unless of course, your actor is another system to which Begin Transaction has some value.
On the issue of Use Cases calling other Use Cases, I believe, it is wrong to call it �calling�. A better term is �includes�. For example, Open Bank Account use case could include a Transfer Funds use case in it. Transfer Funds, use case could include Deposit New Funds use case in it.
As another writer pointed out, use cases, are not functions or subroutines that can be called. They are really composed of multiple scenarios. I suppose for the purposes of modeling scenarios one could use state transition or sequence diagrams, however, use cases and code are at different Meta-levels, sort of speak.