The process that you start when you execute ( cd ../; cd C)
has its own environment, and therefore its own current working directory. This is demonstrable below:
dogface@computer ~/A/B
$ ( cd .. ; pwd ; cd C; pwd )
/home/dogface/A
/home/dogface/A/C
dogface@computer ~/A/B
$ pwd
/home/dogface/A/B
Now try without the '(' and ')' ...
dogface@computer ~/A/B
$ cd .. ; cd C
dogface@computer ~/A/C
$ pwd
/home/dogface/A/C