Duty of care is separate to the compensation
If you stayed at an expensive hotel without giving BA a chance to book something near the airport at any discounted rates it may have, you may find that BA will try to limit the hotel reimbursement to a level to which it could have booked. The airline is not required to pay out for unnecessarily high hotel rates