This question is old, but I would like to present a more synthetical way to define open and closed subfunctors. Some work shows that this yields the same open and closed subfunctors, but I believe that it justifies the definition better. My answer will not explain why the open/closed subfunctors as defined in the question agree with open and closed subschemes, but it will explain how to think about them.
You start with the big Zariski topos $Zar$ and write $Spec(R)$ for the representable sheaves $Spec(R) = Hom_{Ring}(R,-)$. The topos $Zar$ has a generic internal ring $\mathbb A$, which is the forgetful functor to $Set$. Then you define the basic open subfunctors of representables $Spec(R)$ to be those of the form $$D(f) = \{x:Spec(R)|\, \neg f(x) = 0\}$$
for each morphism $f:Spec(R) \to \mathbb A$ in $Zar$. You also define $$V(f) = \{x:Spec(R)|\, f(x) = 0\}$$
Some work (combined with basic knowledge over the internal language of topoi) shows that $D(f)$ is precisely the subobject $Spec(R_f)\to Spec(R)$ and $V(f)$ is the subobject $Spec (R/f)\to Spec R$. Next, you make the following definition.
- A subfunctor $S \hookrightarrow Spec(R)$ is closed if and only if it is a meet $S = \bigwedge_i V(f_i)$ of basic closed subunctors in the subobject lattice of $Spec(R)$ in $Zar$. if $I$ is an ideal in $R$, then $\bigwedge_{f\in I} V(f)$ will be precisely the closed subfunctor $V(I)$ described in the question.
- A subfunctor $S \hookrightarrow Spec(R)$ is open if and only if it can be written as a join $\bigvee_i D(f_i)$ in the subobject lattice of $Spec(R)$ in $Zar$.
Warning: The lattice of open subfunctors of the functor $Spec(R)$ will be closed under taking finite meets $\wedge_{Zar}$ and of course under taking infinite joins. In contrast, the closed subfunctors are not closed under taking finite joins $\vee_{Zar}$. The closed subobject $V(x)\vee_{Zar}V(y)$ in $Spec(\mathbb Z[x,y])$ will be strictly smaller than $V(xy)$. The lattice of closed subfunctors has finite joins, but they do not agree with the joins taken in $Zar$.