> The von-Neumann level nature of the machine really doesn't enter into it, though.
It does enter when you try to execute the code; which is a translation from declarative to imperative (assembly).
> To extend your analogy to the absurd, it doesn't make sense to write your program out symbolically in a programming language, because at the end of the day it is electrical values in a processor.
Care to tell me one single example of a declarative computer?
I'm more of a hardware engineer than a programmer, and I can't think of any universal logical circuit with memory that is not imperative. Even at the transistor layer, everything is imperative. This includes gate-model quantum computers and biological computers.
There are some analog models that work for specific problems, but there certainly are nowhere near being declarative.
And the point was, at the high level, declarative -> imperative translation (which is done by a compiler) will typically be worse that an imperative -> imperative translation.
This is why a very written compute kernels in C outperforms its, say, Haskell equivalent, typically by orders.
It's also the reason why scientific computation, signal processing, transcoding software etc. (when raw CPU performance outweighs everything) is typically written in Fortran/C/C++ with a mixture of assembly.
The reason is simple; they map to the underlying hardware well. It is also the reason why assembly languages are imperative.