It seems to me you are re-inventing alpha-beta pruning as applied to minimaxing in SEE!
The current SEE in Joker is just a non-recursive implementation of alpha-beta (with futility pruning) on a search that, besides standing pat, only considers recapture with the lowest (non-pinned?) piece. Instead of doing the moves I just mark the pieces used already, so that they become transparent for X-rays. There is no need to actually move the pieces to the to-square, since they will be immediately captured there. Ther is no UnMake, since you try stand-pat first, and after trying the single move, you won't try anything else.
I do it from a piece list, rather than a bitboard, but that hardly makes any difference, since bitboards are much like a piece list that stores multiple pieces of the same type per entry. The piece list is scanned in increasing order, so the deeper nodes of the search don't start at the beginning, but just continue from the last piece used before. Only if low pieces that are aligned with the target square are blocked by another piece, this piece is marked, and when a marked piece is used in the capture sequence, the piece list is 'rewound' to the piece blocked by it, for a retry. This guarantees proper handling of frustrated batteries (Queen before Bishop/Rook).
Nevertheless, there still are problems that I have not solved, related to those in the diagrams above: if it can capture with two Rooks, and one of them is backed by an enemy Rook, the other not, it picks one of them at random. That can make a big difference for the result, it should use the foe-backed Rook last to delay involvement of the enemy Rook as long as it can.
Also in table-driven SEEs foe-backing cause tremendous complications. It seemed I found a way to do it, but I never got to implement all the details.
By the way, Joker does SEE non-captures just before searching them, to postpone those with negative SEE to the end. It never occurred to me that this could be counterproductive. Based on your observation, I might reconsider it. I guess in alpha nodes any effort spend on move ordering is a waste. But what you do in internal nodes usually hardly has any impact (because there are too few), and in frontier nodes non-captures are futile if eval <= alpha. So the fact that you want to search them means that eval > alpha, (and most likely beta=alpha+1...), so it does not seem hopeless to find a cut-move amongst the non-captures. Non-captures with bad SEE will almost certainly not do it, though, and SEE is far cheaper than really searching them. The snag might be that you only get into this situation if the null move failed to cut you. So there is a threat, and the move to deal with the threat might be hard to find. If you find it randomly, after 15 tries, or so, you would have done 15 SEEs. Not many moves might have bad SEE, so without SEE you might have found it after 20 moves. So you have to compare the search time of 5 moves to that of 15 SEEs.
On the other hand, if the null move scores only marginally below beta, there is no real threat (just the move-lead advantage), and trying the non-captures in order of expected positional merit (e.g. based on piece-square) will make you find a cut-move quite quickly. In that case postponing those with bad SEE seems a worthwile investment.
So I guess I will switch to searching the null move with window {beta-50, beta} (centiPawn), rather than {beta-1,beta}, to make sure I can determine the type of threat (material, positional or move-lead), and determine how to handle it (concentrating on finding moves to counter the specific threat, or just go for my own plan).