I would love to see shelved changes be diffable as you suggest, but before you implement it that way, please think about the consequences to other commands that take revspecs. e.g. what does "bzr log -rshelved:1" do? You could just make that fail, but now this is confusing and inconsistent to the user.
It seems like the main issue is that shelved changes aren't "revisions" like everything else that a revspec defines.
I would love to see shelved changes be diffable as you suggest, but before you implement it that way, please think about the consequences to other commands that take revspecs. e.g. what does "bzr log -rshelved:1" do? You could just make that fail, but now this is confusing and inconsistent to the user.
It seems like the main issue is that shelved changes aren't "revisions" like everything else that a revspec defines.