If I understand correctly, what I mean is this
The code base fot the SCP3 and ARC PRO is the same - except for some conditional compilations that cope with the hardware differences.
The ARC has two buttons only, only one of them dedicated to LC. SCP has two LC, one brake.
The oXigen protocol dedicates two bits for each of the lane change buttons - this information is sent from the controller to the dongle.
When you press two buttons at once, phisically you almost never press them at the same time. Because the data is samped very quickly, it is likely that you will have a transition from 'no button pressed' to 'one button pressedn' to 'both buttons pressed'.
In boolean logic terms this is called a 'race' condition - one bit is set before the other when you want BOTH bits to be set. Therefore, the state of the bits will be something like 00 -> 01 -> 11 quite often as it depends on your fingers.
Similarly, when you release the buttons, the system will likely go from 'both buttons pressed' to 'one button pressed' to 'no button pressed'.
If undetected this can trigger some undesired behaviour.
With an ARC controller, as there is only on LC button which triggers the same LC strategy as pressing both buttons at once in an SCP controller, when the button is pressed both bits are set to 1 at the same time
from 00 --> 11 without transition.
With the app, we will be able to, say, define that for ARC PRO the LC means up or down, and breake means enter, or whatever - bit sets may be mapped to the buttons.
Your suggestion for RCS02 may be equally valid, but yes, unless RCS differentiates between ARC PRO and SCP, any changes to the menu selection logic will apply to both.