How to detect algebraic loop in a system
It's not that loops end up adding things recursively. Think of them like wired connections. Loops in wired connections don't lead to recursive loops do they? Now, at each adder the sum of all that's incoming and outgoing must be equal, much like Kirchhoff's current law. This leads to a linear system of equations. The solution of which tells you in what state the system settles.

Let's consider the case that both $H$ and $G$ are completely memoryless so that the output of $G$ for an input $x[n]$ is $G \cdot x[n]$. Further, let's call the outputs of the two adders $s_1[n]$ and $s_2[n]$. Then, your network layout leads to the following equations

$$\begin{align}
s_1[n] &amp; = x[n] + G \cdot s_2[n] \quad \mbox{(first adder)} \\
s_2[n] &amp; = H \cdot s_1[n] + G \cdot y[n] \quad \mbox{(second adder)}  \\
y[n] &amp; = H^2 \cdot s_1[n] \quad \mbox{(output)}
\end{align}$$

That's a linear system of equations. For every $n$, you are given $x[n]$ (your input), your unknowns are the output $y[n]$ and the two intermediate variables $s_1[n]$ and $s_2[n]$. Solving the three equations with three unknowns gives you the value of $y[n]$ to expect. Since there is no memory here, you can do this for each $n$ independently. 

The $z$-transform helps you to do this easily even in the case where there is memory.