1). I start with the Recording Response Body, and use the Replay when it does not capture correctly. Data response starts to change when you start correlating properly. If it still does not capture correctly, turn on the logs to show everything.
2). A parameter becomes a constant value in that case, the correlation allows you to capture dynamic values into a parameter. In both cases, the parameter can be used elsewhere in the script.
3). In the first instance of the web_custom_request, or web_url, or web_* always.
4). That statement is the summation of what correlation is - a dynamic value (ie. customer id number) that is asserted in one of the steps and used in subsequent steps. For instance, you search for a customer using first and last name with DOB, the system responds with several customers that match, you pick one, and in the subsequent calls you use the customer id for your web_custom_requests to get additional information displayed. You would correlate for that customer id, to use in the following calls.
There are several good web sites that explain correlation, try the Google Search Term LoadRunner Correlation Tutorial.
The biggest strength in loadrunner is the correlation function, you really can't just record and playback. Then once you get the scripting mastered, focus on the Analysis tool to interpret the run results; that is where your value will come out.