I'm not real keen on using the ;loc embedded in text because it increases the parser complexity. Not only are the region names are different depending on which client you are using but by embedding it in other text you significantly increase the complexity of the patterns for matching the text. The /loc (or /pos) command always returns the result in the same format. Additional complexity means a greater chance for errors at runtime (this client will be complex enough without adding to the potential for bugs). The author can be able to change the label on the button that the user presses, but the underlying chat command should be as simple and reliable as possible and that means using "/loc" (or "/pos").
So far I have identified the following 'types' of objectives that are fairly easy to implement (with some unavoidable complexity on the generic chat match):
1=get to location (use /loc to test)
4=kill x (count) enemy
5=acquire x (count) items - they must be in inventory simultaneously (no grabbing one from the vault, putting it back and grabbing it again :P )
Let me know if you think of any other types I should consider.
As to "knowing what you are talking about", that doesn't matter when brain-storming. Some of the best solutions come out of what initially sound like crazy ideas when brain-storming so keep throwing ideas out. Some will stick, some not so much, but they are all valuable (besides, this is your original idea).