I think the problem is that people have a vote. Most people would like things to stay as it is around where they live. I feel in my country there is not so much tools for NIMBYism as people are not listened to so much. I can support better infrastructure on a city level but can’t really do much if it is decided that the train needs to run over my house.
Often laws passed by the federal legislature or provincial legislature that, in practice, only effects people living in a small area. I don't see why decisions related to housing can also not be made at larger level.
To put it another way, it often happens that people will vote for candidates at the provincial/federal level that support increased immigration and/or population growth, and simultaneously vote NIMBY at the local level.
Yes, the same people that agree that there’s a housing crisis and that their city should in general have more affordable housing, just not in their specific neighborhood.