How to differentiate E(x_t+1) E(y_t+1) and E(x_t+1 * y_t+1)

That is not correct. In the Calvo case, you get E_t( something )=0. What you wrote down seems to be a wrong or at least strange transformation. Using the FOC in the form E_t( something )=0 avoids this issue. Dynare by default treats everyting as E(x_t+1*y_t+1).

If you really want to get E(x_t+1) E(y_t+1) you have to use auxiliary variables as in the Epstein-Zin case. See e.g. [Expected value of a power).