I've had a few people request the first option, so it's definitely on the radar. What I imagine is that this option will appear if you select a board from the Boards menu that doesn't have a protocol defined in the boards.txt file. In that case, you'll get another menu in the Tools menu called something like "Programmer to use for uploading" which will contain the programmers defined in the programmers.txt file.
I could imagine your second request working similarly - that is, picking something like "Custom" from the Boards menu would bring up two extra menus, Microcontroller and CPU Speed. I guess you'd need a third for "Upload Protocol" (e.g. stk500, stk200, or "Using programmer"). I guess we'd just disable the burn bootloader option. This is probably a lower priority, since you can always create a new board in the boards.txt file that corresponds to your hardware setup.
I don't like the idea of saving options with sketches, since the general principle is that the sketches should be independent of the boards, and work on any of them. And I really don't want to go down the road of letting you pick which options get saved with the sketch and which are saved globally. It starts to sound like Eclipse.
