I understand what you mean. But, I think, in this case the logic may not be as it appears at first glance:
- Copy each variant of the script to a Script Debugger window.
- Set both scripts to Debug mode.
- Make sure no Character palette is open.
- Now step (⌘Y) through my script variant, the one with the “smaller”
- Close the Character palette again and now step (⌘Y) through the script variant with the “extended”
try block (the variant you have posted).
Logic suggests that the script with the small
try block should throw an error at the
click button line while the script with the extended
try block should throw the error already at the
tell process "CharacterPalette" line, since there is no such process running.
But, if you have stepped through both scripts, you will notice that both are throwing the error at the
click button line, no matter where the
try block actually starts.
My explanation for this:
The description of the target object consists of the two containers (
tell process "CharacterPalette" and
tell window "Characters") and the object itself (
So, it seems that AppleScript does nothing until the object description is completed, that is, until the actual call of the final object (
click button 2) takes place.
This would explain that the error is – in both cases – caught at the
click button line even if none of the containers (
process "CharacterPalette" and
window "Characters") actually exists.
So it doesn’t seem to matter if we include the containers in the
try block, and my rule of thumb is to include as little code as possible in a
try block. 
That being said, I don’t see any real-world difference in execution time, or any other drawbacks of including the containers in the
try block. 
Sorry for the longish write-up, but I find this interesting, and until now I wasn’t fully aware of the exact error “location” in case of missing object containers. So, thanks for posting that variant!
: Well this is my rule of thumb. I’m not saying that it is correct
: When running the scripts in Script Debugger I noticed something interesting: If SD’s “Result” window is open and set to “Best”, then the script with the extended
try block makes SD display the whole list of found elements, while the script with the minimal
try block doesn’t generate any elements listing at all. But I think this is a SD thing and without importance outside of SD.