Commuting hash and encryption function? I wonder if there are secure cryptographic hash function $H$ and encryption function $E$ such that: $H(E(m)) = E(H(m))$ for all $m$.

Do such functions exist?
Short answer: NO

especially for all $m$

as a secure hash function generate significant different output for even a small change in $m$. (see Random Oracle Model for further references).

therefore
\begin{equation}
m \neq E(m)
\end{equation}
\begin{equation}
H(m) \neq H(E(m))
\end{equation}

now a hash function is not same as encryption function.

therefore

\begin{equation}
m \neq H(m)
\end{equation}
\begin{equation}
E(m) \neq E(H(m))
\end{equation}

now from above equations, you can see it is only possible if $H() = E()$ but it is not plausible as 

Hash function must be irreversible and producing a fixed length output where

Encryption function must be reversible and variable length output.

so it is not possible to exist even a single function obeying such criteria.