Since there were no replies so far, apparently there's no magical
solution.
Here's the solution I went with:
(apply #'ediff-regions-internal
`(,@(if (equal (selected-window)
(lispy--vertical-splitp))
(append e1 e2)
(append e2 e1))
nil ediff-regions-linewise nil nil))
A utility function that might be of use to others:
(defun lispy--vertical-splitp ()
"Return nil if the frame isn't two vertical windows.
In case it is, return the left window."
(let ((windows (window-list)))
(when (= (length windows) 2)
(let ((wnd1 (car windows))
(wnd2 (cadr windows)))
(when (= (window-pixel-top wnd1)
(window-pixel-top wnd2))
(if (< (window-pixel-left wnd1)
(window-pixel-left wnd2))
wnd1
wnd2))))))
ediff-window-setup-function
(require 'ediff-foobar)
that does this. That's why I'm asking.