there is no real and fundamental difference between imperative and functional programming
"two sides of the same coin"
What would count for you as a "real and fundamental difference"?
The logical programming paradigm (e.g. Prolog) for you is probably then the 3rd side of the same coin...
Of course all programming paradigms are equivalent in the sense that you can have turing-complete languages for all of them but to equate equivalence with "no fundamental difference" is not giving any new insights for me.
I am sorry but I probably don't get your point.