I tested this a bit on my d10, a540 and elph130. set_MF and subsequent set_focus seems to work on all of them. The script ran and the focus changed between shots. I haven't done anything with the shortcuts or sd override yet.
A few other items (most we discussed in IRC, putting here so the don't get lost)
- set_MF should fail if not in rec mode, without calling the underlying canon function.
- set_focus could (should?) return a status value that tells whether focus override is expected to work with the current settings.
- script set_focus still has some weird logic with shooting_get_common_focus_mode, mf, set_now and set later. In particular the current checks make it use set_now only if the camera has real Canon MF, cameras without Canon MF will use the non-MF codepath even if *MFOn eventprocs work. This doesn't need to be addressed for the first patch.
- Related to the previous, and srsa's suggestion earlier in the thread, the attached patch makes set_focus use set_now if aflock is on. This works on all my cameras. The patch is intended to go on top of waterwingz last patch (it needs the propcase set to know aflock is on). This may address cameras that had no working method. It's also nice because you can see the effect of focus changes right away without shooting.
Thanks again to waterwingz for pushing this forward.
edit:
replaced patch, first one missed camera_info.h