Что-здесь не то. Сейчас подумаю, что.
В той парадигме программирования, которой я придерживаюсь, результат работы подпрограммы должен быть чётко ограничен. Например, подпрограмма возвращает состояние ("диск отсутсвует") или искомый результат ("корень уравнения") или не возвращает ничего, если произведенное действие состоится в любом случае ("скопировали блок памяти с перемножением").
Ситуация, когда подпрограмма может возвращать два разных результата ("скопировала блок" и "отсутствует накопитель"), нарушает этот принцип.
В этом описываемом мною случае нужно подумать, как переделать архитектуру программы.