What is the difference between an impredicative and a predicative version of the separation axiom in ZFC:
$$\forall x \exists y \forall z ( z\in y \leftrightarrow (z \in x \wedge \phi (z)) $$
What are the philosophical concerns in adopting an impredicative version?
You have to refer to the so-called cumulative hierarchy :
A possible "restriction" is through the Axiom schema of predicative separation where the formula $\varphi$ used to "separate" the set $y$ from the existing set $x$ must be restricted.