That is (sadly) how TestRail works. The basis for your tests is the test suite and when you use the same suite for different runs, then the suite is still the basis.
The run only becomes independent of the suite when you close it.
The only real workaround ist to dublicate the test suite then generate the runs separately.
The test cases in the run are only unique with respect to the run, not their basis in the suite. the logic behind that is that the repository for your cases is the suite. The run is an image of the suite that you can add a result to. When you change the test case for A, what you are (formally) doing is: you create a new test case. I said "sadly" in the beginning because this fact is not immediately appearent. It is however "correct" with regard to the philosophy behind it, namely that the test suite is the leading repository.
The test suite is the main repository. When you change the test case for A, you actually create a distinct new case.