REGR: fix op(frame, frame2) with reindex
- [x] closes #31623
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

cc @TomAugspurger this is pretty ugly, and I'm not sure how well it will behave if either frame has MultiIndex colums.

On the plus side, it could improve perf in the many-columns-but-small-intersection case.

The ugliness might be improved by moving this check to before the _align_method_FRAME call