Без заголовка
Сейчас "онтология" это не "программирование", а скорее алхимия, в противовес химии. Лучше оставить зашквареный термин. В отличие от системной инженерии, которая (пока?) нет.
Что касается "physical vs. functional object", то подобная дихотомия работает для стандартного примера "замена насоса", но до того момента, как оказывается, что "роль" _физического_ насоса id123 после возвращения из починки исполняет насос id234 (по каталогу ремонтного сервиса, предприятие же отправило id123 и получило id123). Всё может быть ролью, и "Принц Гамлет", и "Вася Пупкин". У нас есть лишь прикидка, что множество сегодняшних молекул/атомов Васи мало чем отличаются по интересующему поведению от вчерашних.
В общем, трудность объяснения может быть обусловлена не контринтуитивностью ситуации, а неработающей метафорой вроде "physical vs. functional".