When I add modules from the 7.5 AddOn store on an Alloy demosite, the "Self-optimizing block" is added to "/appdata/modules/...", but the "Social Reach" module is added to "/wwwroot/modules/..."
In our case, the "wwwroot" would be under version control, and overwritten at the next deployment. Only modules in "/appdata/modules/..." would survive s deployment.
Is this the expected behaviour of the AddOn store ?
Yes, this is expected behavior. There are two type of add-ons: public and protected. The public add-ons files are placed under the site root, whereas protected add-ons files are placed under the appdata folder. See more in "Public and protected add-ons" section here.
I have a concept for 7.0 about versioning Modules.. For some inspiration, check my blog.