The whole piece breaks here. The definition of ethics is more complicated than that, and probably also very far from what you write. Check the materials from EdX’ “Data Science Ethics” course to find out more https://courses.edx.org/courses/course-v1:MichiganX+DS101x+2T2016/info , for example. I seem to remember that in the very first lesson prof. Jagadish explains how what is “ethical” just depends on your context: culture, time, geography etc. and it is not about causing harm, it is just about something being acceptable or not by most people within that context. A great example is how email spam became unethical, but it wasn’t in the early days of the Internet.
You’re speaking from a “moral” point of view, knowing that your typical reader will likely agree with you. But your definition is not a definition of “ethical”.
I’ll read the rest after we clarify this point. Lots can be said. E.g. we can discuss how law — by formalising ethics — tends to be less subjective . This means that it is easier to state if something is legal or not. By being a formalisation of ethics, however, law tends to become outdated quickly, exactly because people change their mind. We can also discuss moral systems, and how a mature moral individual doesn’t care about ethics nor law, because she / he always judges on her / his personal understanding.