A causal system is just one where the output at time ##T## only depends on the input at times ##t \le T##. In other words, the filter doesn't know anything about the future. That is a requirement for any filter that operates in real time (unless you want to change the laws of physics!) . If you are filtering data that has been acquired in the past, the filter doesn't have to be causal.
Recursiveness is irrelevant. That just says the output at time ##T## also depends on the output at times ##t \le T##, but those outputs ultimately depend on the inputs.
Recursiveness is useful in practice because you can design a filter that does a finite number of "operations" (either analog or digital) but the output depends on all the input from times ##-\infty < t \le T##. A simple example would be an digital "exponential smoothing" filter where the output at time ##T## is a weighted average of the input at time ##T##, and the output at the previous time ##T-\delta t##.