The problem with your action model is that it is a net negative for you, and a net positive for them. You give them $$ for free in the form of time and energy spent calling, arraging the return, and probably time getting to the place for the drop off. I value my time far to much to do this for the vast majority of companies. Especially large companies. MAYBE if it is a local or small business I have a relationship with I will.
If a company who makes such a mistake is willing to either credit me for my time or literally send someone to my house to pick it up and not have me fill out paperwork, then I would happily return it. Otherwise they are SoL. I am not their bitch, I am not their mommy to fix their mistakes. I will not expend effort to fix their mistakes. I will not notify them, fill out RMA forms, go to a FexEx or UPS store to send it, etc.
That is not an ethical issue, it is an economic one.
If I see someone drop $20 on the street, I will pick it up and give it back to them.
If I am at my favorite bar or restaraunt and I find $20 on the ground I will give it to management (the owner might ask the management and if he/she does the place I like will stay open longer, thus value for me).
If I am walking down the street and there is $20 lying on the ground and noone is in the area, I am NOT going to go to a police station, report it lost, fill out the forms, and come back weeks later. If it was $20,000 I might but not for $20.
NOTE: I did once return a drivers license I found near my house, went out of my way for 30 minutes. I think the reason was simple empathy. It was super easy, I had an address, and I empathized with someone losing their license.