Grover's algorithm is traditionally used under an oracle, $U_f$ such that $U_f | x \rangle = (-1)^{f(x)} | x \rangle$ where $f(x)$ is either $0$ or $1$.
But in the Wikipedia page, there is an alternative oracle definition.
$$U_F |x, y \rangle = |x, y \oplus f(x) \rangle$$
This is similar to the Deutsch-Jozsa oracle.
And the page later proves that Grover's algorithm can be used under this oracle too:
$$ U_F | x, - \rangle = \frac{1}{\sqrt{2}} \left ( U_F |x, 0 \rangle - U_F |x, 1 \rangle \right ) = \frac{1}{\sqrt{2}} \left ( |x, f(x) \rangle - |x, 1 \oplus f(x) \rangle \right ) = \begin{cases} \frac{1}{\sqrt{2}} \left (|x, 1 \rangle - |x, 0 \rangle \right ) & if \; f(x) = 0 \\ \frac{1}{\sqrt{2}} \left (|x, 0 \rangle - |x, 1 \rangle \right ) & if \; f(x) = 1 \end{cases} \\ = U_f |x \rangle \otimes | - \rangle $$
But just because this version can be solved using the original Grover's algorithm doesn't mean that it is optimal for this version. So is it still optimal in this version?