We were getting a lot of automated requests, and right when we put the waterwall on our page, it did a good job of picking out those users and not impacting others.
After a few days though, those users were able to start getting through again, but based on the timing between requests, it looks like they might have had to start operating the page manually.
But if a bot decides to target you specifically, all of these things are trivial to defeat. So once again they are not useful.
I can imagine at the frontend you have some JavaScript, where an input field gets filled in or something. There has to be some server side checking as well, otherwise a simple HTTP POST would submit fine.
I do like the idea, but if you need JavaScript anyway, why not have some invisible inputs. They work for now.