how could correlation-based image patches matching works? In general, correlation-based image matching can be referred to as 
$$c(I_1,I_2) = \sum_{x \in patch} f(I_1(x), I_2(x))$$
, I do think normalized cross-correlation like
$$ncc(I_1, I_2) = \sum_{x \in patch}\frac{(I_1(x) - \mu_1)(I_2(x) - \mu_2)}{\delta_1\delta_2}$$.
is a good indicator to show if 2 patches match or not.

BUT my problem is that, if 
$$\begin{eqnarray*}
f(I_1(x), I_2(x)) &amp;=&amp; \sum_{x \in patch}I_1(x) \cdot I_2(x)
\end{eqnarray*}
$$
, then I don't think $c(I_1, I_2)$ will be a good, right?

Furthermore, this type of correlation-based matching techniques won't work well if one of the images rotates, right?
Normalized is preferred to regular correlation to handle variation in brightness, or intensity, between images if nothing else.

Regarding your second comment, the correlation is going to be lower if the shape rotates (unless it happens to be symmetrical in all four directions).  There are other features you can consider that are rotation invariant as well.  See this post for some examples.