Genetic Algorithms seem like multiple simulated annealing instances, augmented with a crossover genetic operator. The crossover operator selects predefined genes from two different parent solutions to create a new child solution for the next generation.
This seems to suggest that the search space is independent (a single gene will benefit a solution regardless of the other genes). Additionally, it seems like the user needs to choose axes along which the search space is separable.
However, genetic algorithms are often used in practice. Are my concerns a nonissue? Are most real world search spaces independent?
P.S. I would a define a two argument fitness function $F(x,y)$ as independent if
$$F(x,y) = G(x)+H(y)+\epsilon J(x,y)$$
for some small $\epsilon$. For example, $F(x,y) = -x^2-y^2+0.1xy$ would be an independent function. Intuitively, the arguments of an independent function interfere with each other minimally.