Using with without as still gets you the exact same teardown; it just doesn't get you a new local object representing the context.
The reason you want this is that sometimes the context itself isn't directly useful—in other words, you're only using it for the side effects of its context enter and exit.
For example, with a Lock object, you have to already have the object for the with block to be useful—so, even if you need it within the block, there's no reason to rebind it to another name. The same is true when you use contextlib.closing on an object that isn't a context manager—you already have the object itself, so who cares what closing yields?
With something like sh.sudo, there isn't even an object that you'd have any use for, period.
There are also cases where the point of the context manager is just there to stash and auto-restore some state. For example, you might want to write a termios.tcsetattr-stasher, so you can call tty.setraw() inside the block. You don't care what the stash object looks like, all you care about is that it gets auto-restored.
decimal.localcontext can work in any of these ways—you can pass it an object you already have (and therefore don't need a new name for), or pass it an unnamed temporary object, or have it just stash the current context to be auto-restored. But in any of those cases.
There are some hybrid cases where sometimes you want the context, sometimes you don't. For example, if you just want a database transaction to auto-commit, you might write with autocommit(db.begin()):, because you aren't going to access it inside the block. But if you want it to auto-rollback unless you explicitly commit it, you'd probably write with autorollback(db.begin()) as trans:, so you can trans.commit() inside the block. (Of course often, you'd actually want a transaction that commits on normal exit and rolls back on exception, as in PEP 343's transaction example. But I couldn't think of a better hybrid example here…)
PEP 343 and its predecessors (PEP 310, PEP 340, and other things linked from 343) explains all of this to some extent, but it's understandable that you wouldn't pick that up on a casual read—there's so much information that isn't relevant, and it mainly just explains the mile-high overview and then the implementation-level details, skipping over everything in between.
with foo:in this case.foois a callable, and the result of that callable will almost certainly be the context manager you want to exit, not the callable itself. Butwith bar:is perfectly reasonable here, as in @freakish's answer.