Normals get flipped after joining two meshes

I’m joining two meshes into one, and the joined one gets its normals flipped after joining.
I’ve read many threads about this problem and I applied the most suggested solution - apply all transforms to all meshes, but it didn’t help. My meshes have all transforms applied and still flip normals when joined.
What is wrong?
Here’s an example:
flipped normals.blend (1.3 MB)

I know ways to manually fix this, flip, recalculate normals etc. But I want it to just work, right off the bat.

The problem seems to be in Delta Transform of the object.
Don’t know a way to “apply” those, though Oo

Except resetting them to default values and rotating/scaling the object again with regular transforms.

Ok, I haven’t quite fixed it, but with your help I realized that the problem is somewhere else. I shouldn’t have used Apply All Transforms To Deltas. I couldn’t Apply All Transforms cause I had multi-user objects, so I made them all single-user (Object > Relations > Make Single User > Object & Data) and then Applied All Transforms. To be exact - the normals flipped after applying scale cause the objects had negative scale.

I’m wondering if there’s any way to “flip” object’s scale (apply it from negative to positive) without getting the normals flipped. For now I’ll just fix it manually.