Why do we use (pseudo) random permutations and not (pseudo) random functions for en- and decryption?
We do use PRFs for encryption and decryption!  We use them as stream ciphers to generate one-time pads.

For example, with the ChaCha20 stream cipher, the encryption of the $n^{\mathit{th}}$ message $m$ in a conversation is

\begin{equation*}
  \operatorname{ChaCha20-Encrypt}_{\;k}(n, m) = m \oplus p,
\end{equation*}
where $\oplus$ is xor, and the pad $p$ is generated by
\begin{equation*}
  p = \operatorname{ChaCha20}_{\,k}(n \mathbin\Vert 0)
                \mathbin\Vert
                \operatorname{ChaCha20}_{\,k}(n \mathbin\Vert 1)
                \mathbin\Vert
                \dots.
\end{equation*}

$\operatorname{ChaCha20}_{\,k}$ is the ChaCha20 core PRF under the key $k$.

Likewise for the AES-CTR stream cipher, but we use the PRP $\operatorname{AES256}_k$ approximating a PRF instead of the PRF $\operatorname{ChaCha20}_{\,k}$ to generate each block of the one-time pad.  In all cases with this pattern, decryption conveniently turns out to be exactly the same procedure—which is a bonus for AES, because $\operatorname{AES256}_k$ is usually faster to compute than ${\operatorname{AES256}_k}^{-1}$, the latter of which is unnecessary to use in AES-CTR.

N.B.: If you're thinking about doing this in practice, please use it responsibly in an authenticated encryption scheme like crypto_secretbox_xsalsa20poly1305 or AES-GCM, not alone, unless you're very carefully designing an exotic protocol.