A lot of engineers I know refuse to do them and for good reason. It's no secret that the candidate is going to spend many hours on their take-home assignment. Hours that could be sent researching, applying, and interviewing at other companies.
2. As most coveted positions have upwards of 50 "qualified" candidates the interview process is frequently seen as a numbers game. i.e. even if you are a great candidate, odds are that there are another few great candidates and you have a fairly low shot.
3. Most coding boot camps that have job placement guarantees require you to apply to at least two jobs DAILY!
It seems that the quantity of applications is a better strategy than 1 or 2 quality applications. Obviously, the quality has to be "good enough" to get you interviews.
4. My personal strategy is to do them IF I can see a path to generating value from the assignment even if I do not get the job.