Ist meine Vorgehensweise - also über die Multiplikation eine Wertung herzustellen - so überhaupt korrekt?
Vermutlich nicht.
Nehmen wir statt Enums einfach Zahlen 0..9 und N = 1. A und B seien die beiden Flags-Arrays mit den Werten A=[0,2] und B=[1,0]. Die for-Schleife geht nun für I von 0 bis 1 und ermittelt:
result = 1*(0-2) + 2*(1-0) = -2 + 2 = 0
Der Comparer hält also die beiden Flag-Arrays für gleich.