Features code changes overriding automatically
No, this is how Features work. If your feature is in Default state, code change will cause direct effect on the components (there are some exceptions when clear cache is required). This is actually one of the biggest points and benefits of features, you can easily deploy updated code without any further required action.

Maybe there is a problem with your workflow, you should create you features on you Dev environment (configurations etc), then export them and deploy to Stage/Prod. It is not a good practice to directly change the configuration of components on Stage/Prod environments, you should always do your changes on Dev, then recreate the feature and deploy.