I may be over-simplifying but I think the answer to why we are not winning wars is:
To win a war you need to be RUTHLESS.
I offer up the bombing of Germany and Japan in WW2. We won that war against two very formidable enemies who, like us, were RUTHLESS. But we had bigger guns and we won.
We now fight wars according the PC requirements of the New York Times and the like. As a result, wars are no longer WON, they are ABANDONED. I offer up Korea, Vietnam, Iraq, Afghanistan as examples.
I agree. When a people become too civilized to do what's necessary to survive in an uncivilized world, they won't survive.
In WWII ,as a veteran of such, the US had a pool of hardy young men and some good military leaders. Once we realized that the Germans and the Japs were actually going to kill us in any barbaric way the men and women of the age took things seriously and showed the Japs and Germans we could and would fight too. I believe this factor of character was something neither the Nazis or Japs realized. By the way I don’t recall Mexico being a big help if any for our efforts in WWII.