The actual question here is why they won't sell you a ticket for A->B for the actual cost of that leg of the A->B->C flight, and then sell the same seat for B->C to someone else.
See above: let's say that on Frankfurt-Hannover and back you get on average 52 passengers a day, and Hannover-London is more or less the same, while people flying Frankfurt-Heathrow are so numerous that direct flights are always full and therefore you need to offer FRA-HEA with a stopover to satisfy the extra request.
If you are sure that 80% of your passengers will go to Hannover only to then fly to London (and back) your prices will reflect that... and Frankfurt-Hannover cannot be lowered too much because you still has to try to reach your quota for the flight per se.
See above: let's say that on Frankfurt-Hannover and back you get on average 52 passengers a day, and Hannover-London is more or less the same, while people flying Frankfurt-Heathrow are so numerous that direct flights are always full and therefore you need to offer FRA-HEA with a stopover to satisfy the extra request.
If you are sure that 80% of your passengers will go to Hannover only to then fly to London (and back) your prices will reflect that... and Frankfurt-Hannover cannot be lowered too much because you still has to try to reach your quota for the flight per se.