If the hobbyist knows that the code may be used in a critical environment then the hobbyist should withdraw the code or make it very clear its suitability for some task has not been tested. It is rather like asking someone for directions and the person misleads you on the basis that you are not paying him for directions.
Ethics always apply whether you are being paid or not.
It's already made very clear in the license that the code hasn't been tested, and comes with no guarantees. How much clearer than that can it be?
Also, you can't really withdraw code from the Internet. Even if you take down the original repository, there may be dozens of forks.
There are very few "professional software engineers" in the USA. Only a few schools, such as UIUC, have such a program.
Software engineer and software architect are meaningless terms. They are self applied yet imply some sort of parity with engineering or architecture. Insert your favorite "if x were built in the same way as software" joke here.