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
@jbrockmendel is this still a POC? Or is this good for 1.0.2? > is this still a POC? Or is this good for 1.0.2?

Borderline.  Do we have a timeline for 1.0.2? Next week-ish? > Next week-ish?

Sounds good.  I'd like to try a second draft of this, if we're OK with this approach. The approach looks generally OK to me. 
But for possible alternative approach: do you know why this started failing? What changed in the ops code that might have caused this? @jbrockmendel What's the status of this? I opened https://github.com/pandas-dev/pandas/issues/31874 for a larger discussion on how to fix this, which addresses Jeff's comment in https://github.com/pandas-dev/pandas/pull/31679/files#r376807594. That's too large to do now though.  > What's the status of this?

I'm catching up on reviewing things, hope to push a second draft of this later today.  I don't expect the logic to change, just the organization. Updated, separating out the new logic to dedicated functions, doing it before the _align_frame_METHOD call.
 looks good, some comments @jbrockmendel couple of comments. I'm under the weather, will get to these once I'm back on my feet. > I'm under the weather, will get to these once I'm back on my feet.

sure np! feel better! comments addressed i think thanks @jbrockmendel  Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

1. Checkout backport branch and update it.

```
$ git checkout 1.0.x
$ git pull
```

2. Cherry pick the first parent branch of the this PR on top of the older branch:
```
$ git cherry-pick -m1 f4dc9f9028a3da539126f9a8a37e7c41fc7b4b3c
```

3. You will likely have some merge/cherry-pick conflict here, fix them and commit:

```
$ git commit -am 'Backport PR #31679: REGR: fix op(frame, frame2) with reindex'
```

4. Push to a named branch :

```
git push YOURFORK 1.0.x:auto-backport-of-pr-31679-on-1.0.x
```

5. Create a PR against branch 1.0.x, I would have named this PR:

> "Backport PR #31679 on branch 1.0.x"

And apply the correct labels and milestones.

Congratulation you did some good work ! Hopefully your backport PR will be tested by the continuous integration and merged soon!

If these instruction are inaccurate, feel free to [suggest an improvement](https://github.com/MeeseeksBox/MeeseeksDev).
                