From the basic perspective of a A, C, B, C, A, D flow...
Adobe should be able to handle C twice in the sequence.
I don't have CJA, so I can't speak to whether or not you can create segments within the journey.
My suggestion, given this seems to be a complex case that likely doesn't come up much... would be to try this in a isolated environment... try running through several scenarios (use a fresh incognito for each run, and make note of your user identifier or other values that you can use to verify the data after the fact), and see if the the runs you expect to show up do, and the runs that shouldn't, don't..
You may need to make tweaks to your logic, but having a solid set of runs that you know exactly how they should work will allow you to confirm the behaviour.