The reduction you refer to is called Turing reduction. Given $A,B\subseteq \Sigma^*$, we say $A\le_T B$ if there exists a polynomial time Turing machine which decides $A$, given oracle access to $B$. You might call this practical, and in some sense this is the natural way to say $A$ is no harder than $B$ (give me a program for $B$, and i'll write an efficient program for $A$ which uses the previous program as a subroutine).
The standard notion of reduction in complexity theory is Karp reduction (also called many to one reduction). We say $A$ is reducible to $B$ in this sense, if there exists a polynomial time computable function $f$ such that $x\in A \iff f(x)\in B$. Note that this is a weaker condition, i.e. if $A$ is Karp reducible to $B$, it is also Turing reducible to $B$ (apply $f$ on the input, and query the oracle on the result).
Since TQBF is PSPACE complete, then by definition, every language in PSAPCE has a Karp reduction to it (and thus also a Turing reduction). Not only that we know there exists such a reduction, but given a PSPACE machine for some language $L$, then we know how to construct a reduction from $L$ to TQBF (this is done in the proof for the PSPACE completeness of TQBF).
The decision versions of $\#P$ problems are in PSPACE, since you can go over all possible witnesses and count how many are accepting (the only thing you need to store is the counter). This means that all such problems are reducible to TQBF. This is a very precise statement, but intuitively, it says exactly what you want it to. If you can efficiently decide TQBF, then you can efficiently decide all languages in PSPACE, which includes the decision versions of #SAT and permanent.