Let's ignore for the moment the issue of when I=0 and you have negative indexing.
B(2) = A(-1) + C(-1)
Which may or may not be a problem
The parallelization tool (i.e. compiler) generally parallelizes the loop by slicing the iteration space.
The compiler can test for dependencies by determining if one slice modifies a different slices data. If so then it generally will not parallize the loop unless directed otherwise.
In this situation, as you have pointed out, you have a temporal issue accross the junctures of the slices. Not only for the backwards reference of A but also for the forward reference of B.
Your example has a forward look on B at B(2*I +3) with backwards reference (from B(2*I+3)) being modified. Also, the 3rd statement can be boosted out of the loop and written only once. I know that your example is a dummied up piece of code.