Doubts on a proof about graphical models This is the third question I am asking about these notes http://www.stat.cmu.edu/~larry/=sml/DAGs.pdf .This time it is about the proof of a small theorem (page 426), that I report:

Theorem: Let $G$ be a DAG and P a distribution that is faithful to $G.$ If $X_i$ and $X_j$ are adjacent in $G,$ than the conditional independence test $X_i \mathrel{\unicode{x2AEB}} X_j |A$ fails for $A \in V-\{i,j\}$. On the other hand, if $X_i$ and $X_j$ are not adjacent in $G,$ then either
$X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_j)$ or $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_i)$, where $\pi(X_i)$,$\pi(X_j)$ are the parent sets of $X_i$ and $X_j$ in the DAG $G$.


Proof: For the first part, [...]. For the second part we consider two cases. (i) $X_j$ is a descendant of $X_i$ and (ii) $X_j$ is not a descendant of $X_i$. By definition of $d$-separation in the first case we can show that $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_j)$ and in the second case that $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_i)$.

But I had a few doubts. First of all in the first case (i) I understand that the path from $X_i$ to $X_j$ making $X_j$ a descendant of $X_i$ is blocked when we observe $\pi(X_j)$ but why can't we have other paths that are open?
For (ii), In the DAG below:

$X_j$ is not a descendant of $X_i$ but $X_i$ and $X_j$ are not d-separated given $\pi(X_i)$, because the only collider (in the only path between them) is observed. Isn't it a counterexample to the reasoning or am I applying $d$-separation in a wrong way ?
(note I am not saying that the theorem is wrong, just that I do not understand the proof ;) )

Having a collider's vertex observed or measured does not mean that causal information can flow through it. What makes causal information flow through a collider is when you condition on the collider. And note that this is exactly the opposite behavior from chains and forks. In summary:
$$\begin{array}{cccc}
\text{Label} &\text{Diagram} &B \text{ Conditioned?} &\text{Causal Information flow-through?} \\ \hline
\text{Chain} &A\to B\to C &\text{No} &\text{Yes} \\
 & &\text{Yes} &\text{No} \\ \hline
\text{Fork} &A\leftarrow B\to C &\text{No} &\text{Yes} \\
 & &\text{Yes} &\text{No} \\ \hline
\text{Collider} &A\to B\leftarrow C &\text{No} &\text{No} \\
 & &\text{Yes} &\text{Yes} \\
\end{array}$$
To condition on a variable, you can do all sorts of things such as backdoor adjustment, frontdoor adjustment, instrumental variable, stratified analysis, including the variable in the RHS of a linear regression model, and probably a few others.
