Interesting thread.
I don't like having to shoot to FU or RD to deal with bad targets. That actually requires thinking! Since I've been experimenting with a lettering scheme, I've found it natural in M2 to associate each letter, not each position, to an algorithm.
To make things easy, I'll use DF as the buffer in this post. I'll write (s) to represent the move in M2 that brings s, which can be any sticker in R/L layer, to UF, and (s)' for the inverse of (s). For example, (FR)=URU'. We can then handle the bad targets as follows:
(Next two stickers memorized: solution)
FU s: M2 (s) M (s)' M
s FU: M' (s) M' (s)' M2
BD s: M2 (s) M' (s)' M'
s BD M (s) M (s)' M2
For example, to do (DF BD FR), use the third line: M2 (FR) M' (FR)' M', or M2-URU'-M'-UR'U'-M'. This way, we don't have to think at all where to shoot. For example, BD=X and FR=G in my current lettering scheme, so that cycle is XG. I've already associated G with URU', so I just substitute that into (FR); I don't even think about where G actually is.
This combined with normal M2 methods allow us to solve two stickers, exactly one of which is in the M slice, very easily and actually pretty efficiently. I know, for example, that Stefan's way for FU is faster, but the difference is only an M2.
With these tricks, it looks like we're heading in the direction of systematic 3-cycling, i.e. picking one sticker as the buffer and learning the solution to each of the 22*20=440 possible 3-cycles of stickers starting with the buffer. I think using DF or FR as the buffer makes all these cases actually pretty easy to organize. Plus, that way, you can start incorporating some of these cases into M2.
There are 6*16*2=192 cases involving exactly one sticker in the M slice, which we already covered. In addition, there are 3P2*2*2=24 cases where both stickers are in the M slice. It's probably not too bad to just memorize these cases. Can anyone think of a way to deal with the remaining 16*14=224 cases that's efficient and easy to learn?
Of course, we could split this into special cases. For example, if there is exactly one sticker in U layer, do an appropriate number of U turns to reduce to either UB or FU. That might require "too much" thinking, though.
-macky