Без заголовка
Наверное надо просто развести программирование (работа кода в любой ситуации) от обработки _конкретных_ данных выражением DSL. И тогда никакого противоречия нет.
(Во втором случае, чем короче и компактнее + с максимумом множественной диспетчеризации тем лучше, в том числе для повторного использования в REPL.)
(ну а Викхама мы и дальше с удовольствием почитаем в дискуссии "о одном фатальном недостатке" data.table :) )