In my opinion, "white" doesn't mean everything good or legal and "black" doesn't mean everything bad or illegal. Ideally, "white-hat" and "black-hat" are just symbolic representation used to symbolize if particular SEO practice is officially recommended by search engines (white-hat) or officially denied by search engines (black-hat). For example, optimizing the website for relevant keywords is officially recommended by search engines so it's symbolized with white hat, while keyword stuffing is officially not recommended by search engines so it is symbolized with a black-hat. This representation changes with the time as search engines keep announcing new things that they recommend or deny. So if something white hat or black hat earlier might be no longer the same.
What search engines are announcing is usually their stand but practically it is not giving results according to those announcements. We can't say they are misguiding but they are also not guiding in a way that one can get desired results with.
If we do what is black-hat according to above ideal classification then we will miss the shot and will get penalized. So practically what we classify, do, and discuss in the black hat techniques is not the ideal black hat but is something between both, which is not clearly confirmed or denied by search engines or even if denied publicly but still giving results if practiced carefully. It is also common that we use the terms which are now classified under black-hat but implement them in a way that it lies in the safe area and give good outcomes. So it is a common confusion for some newcomers that we are discussing and implementing the stuffs which are black hat and not recommended by search engines, but in actual we are discussing to do those in a moderate way to get the desired results. So you can still say them black-hat or gray hat as per your convenience but it is something what is working and giving results.