при этом объект, как ни странно, полностью удовлетворяет требованиям интерфейса
Объект полностью удовлетворяет, да.
Проблема не в этом, а в том что клиентский код (класс C) занимается самодеятельностью, опасно вызывая метод, о котором только догадывается.