First since you are setting custom dimensions I believe [A, B, C, D]
should represent different values of custom dimensions, not pages.
When using Hit Level Custom Dimensions you should be looking at pageviews instead of visits/sessions. So what you really should be expecting to see is:
#Use case 1
Mode 1:
A : 4 pageviews
B : 4 pageviews
Mode 2:
A : 2 visits
B : 3 visits
#Use case 2
Mode 1:
A : 4 pageviews
B : 1 pageviews
C : 1 pageviews
D : 1 pageviews
Mode 2:
A : 1 visits
B : 1 visits
C : 1 visits
D : 1 visits
#Use case 3
Mode 1:
A : 1 pageviews
B : 1 pageviews
C : 1 pageviews
D : 1 pageviews
Mode 2:
A : 1 visits
B : 1 visits
C : 1 visits
D : 1 visits
#Use case 4
Mode 1:
A : 5 pageviews
Mode 2:
A : 1 visits
If you redo your tests with this in mind the numbers should match.