For one particular program. For programs in a particular domain. These may not be as distinct as they at first appear. That was the argument from expressiveness. This argument presupposes that we have an all-purpose means of combination and abstraction.
Interface design is like language design.
Therefore, interface designers should know principles of language design. Let's get more specific about the relations between interpretation, compilation, partial evaluation, and optimization. Expressions allow data to be produced and used without needing a name. That was Fortran's major advance in expressiveness over fancy assemblers and floating-point interpreters. Maybe I should take a look at MathCad.