Not necessarily. If you use use hidden-city ticketing, they lost out on extracting the extra money they wanted to charge you for going to your intended destination AND the extra money they may have been able to charge someone else for the leg you didn't take.
That said, I think it's the airline's fault for using an over-complicated pricing model with odd behaviors that customers can take advantage of like this. There'd be no issue if they just charged the same per leg regardless of your final destination. That'd make everything transparent and totally remove the need for hidden-city ticketing.
Not necessarily. Airlines have sophisticated yield management programs that should give them a good estimate on how many passengers are likely to skip the final leg of any particular route -- the airline can oversell the final leg by exactly the number of passengers who aren't likely to show up.
Heck, jetliners actually can’t land if the tank is too full - https://youtu.be/R9oqi6HteJg
If they're overbooked, they avoid having to pay to bump someone.
They incur less in fuel costs, as the plane lands in its destination city with a slightly greater fuel load.
Some passenger somewhere has a more pleasant flight because they have an empty seat next to them.