# What's the difference between these two spaces?

In the finite element method, $Q1$ element is defined by $\textrm{span} \{1, x, y, xy\}$.

And $\textit{rotated } Q1$ element is defined by $\textrm{span}\{1, x, y, x^2-y^2\}$.

Please tell me what is the difference between these two spaces?

It's of course wrong but I think these two spaces are the same since $x^2-y^2=(x+y)(x-y)$.

PS: anyone familiar with the FEM please let me know which space is preferable in which cases?

Your equation $x^2-y^2=(x+y)(x-y)$ in fact shows not that these are equivalent but why the element is called "rotated". The coordinates $x+y$ and $x-y$ are coordinates rotated by $\pi/4$ with respect to $x$ and $y$. A basis $\{1,x,y,x^2-y^2\}$ is equivalent to a basis $\{1,x+y,x-y,(x-y)(x+y)\}$ (since the first, constant basis element $1$ is the same in both, the last, quadratic one is also the same (as you showed), and the two linear ones can be linearly transformed into each other). Thus, this "rotated" basis can represent the functions that the basis $\{1,x,y,xy\}$ could represent when rotated by $\pi/4$.
The two elements are not equivalent, as you claim, since there are three linearly independent quadratic functions (one possible basis being $\{x^2,xy,y^2\}$), and you cannot obtain $x^2-y^2$ from $xy$ by linear combination. What you exhibit is not a linear combination; functions are not multiplied with each other in a finite element; only linear combinations with (variable but spatially) constant coefficients are formed.
As to your question which one is preferable in which case, that will depend a lot on your application and is probably best answered by someone in your field. Very generally speaking, $\{1,x,y,xy\}$ represents functions that are linear in all axis-parallel directions, and can be quadratic in other directions. So if you have some preferred directions and expect your functions to be approximately linear along those directions, you may want to align the axes of your elements with these directions, or, if for some reason that's not possible, "rotate" the element's functions instead.