RC4 key schedule and algorithm design
The correction question you should ask about why various operations in RC4 (or, for that matter, any other cipher) are there would be "if I were to remove that, what would the impact be?  Would this weaken the cipher in some way?"

At your current state of knowledge, that may be a rather imponderable question, but it is still the correct one.  I can try to give you a simple example: if you remove the $S[i]$ from the update of $j$, leaving

j = (j + key[i % keylen]) % 256


Then $j$ will follow a much simpler trajectory through the array as we run the key setup routine.  In particular, if the key bytes just happen to sum to a multiple of 256 (which will happen 1/256 of the time for a random key), then $j$ will visit only (at most) keylen bytes of the array; all the other elements of the array will participate in one swap.  Now, it's not immediately clear how a bias like this might influence the cipher; however it is quite plausible that it wouldn't be good.