Earlier quoted context omitted.
I've never understood mortgage refinancing in the US. Isn't the lender taking a loss when you refinance, since their 20-year asset will now pay less in interest than before? How does the lender make up for this loss, if the debtor isn't paying the difference every time they refinance to a lower interest rate?
The lender has no practical alternative in most cases other than to reject business outright. The reason they go along with it mostly willingly, is the borrower can typically go somewhere else for the loan. The current lender would just as soon keep you as a customer at 2% (vs the old 4%) than see you go somewhere else. They don't make up for the loss, they accept the lower rate of return vs losing the customer entir…
The customer therefore has no leverage over the lender by threatening to take the loan elsewhere. They'd have to pay all of the remaining interest if they wanted to settle the loan, or at best settle the interest difference if moving the loan to a lender with a different interest rate. Assuming both banks agreed to the exchange.
Of course, if interest rates increase, such settlement could also favor the borrower. But that hasn't been the case in a long time.
Most mortgages here are floating-rate.