@2x image variants and viewport scaling are completely different things.
In terms of scaling, It's quite trivial to retrieve device information for pixel density, screen size, etc. I'd imagine somewhere in the cocos2d-x framework there are checks for all of those specifics that drive the initial set up at run time.
(50,100) should always be (50,100) in your game logic. Anything else is a terrible way to work IMO. The "auto" scaling you're seeing should be nothing more than varying values in the GL viewport being created by cocos2d-x according to varying hardware.
I rolled my own game/rendering engine and had to set all of this rendering logic up, most middleware should just be ready to roll. I have unified coordinate logic between SD/HD devices and also coordinate conformity between iPhone and iPad - so multiple factors across three scales (iPhone SD, iPhone HD/iPad SD, iPad HD) bringing every (50,100) into the same relative screen location.
Would be very surprised if cocos was any different by design. Or if it couldn't at least be made to behave that way easily via some setup flags.