Я согласен в принципе, вам не нужно знать в большинстве ситуаций.
Однако, один из случаев, когда это может быть полезно знать, - это при отладке, откуда пришла определенная информация, в случае передачи неверного параметра.
Однако в этом случае, вероятно, лучше создать исключение, зарегистрировать исключение и «восстановить» его. Очевидно, это зависит от того, как часто вызывается метод, поскольку при создании исключения всегда есть некоторые накладные расходы. Если вам нужно сделать это по какой-то другой причине, чем я бы посоветовал вам сначала посмотреть на свой дизайн.
Если вам нужны обратные вызовы, я бы посоветовал вам сделать так, чтобы A и B реализовывали интерфейс и передавали A или B в качестве параметра. Интерфейс может иметь метод обратного вызова, а C может вызывать A или B.