It can cause surprises. One of the biggest ones is turning a loop into an expression if it’s the last thing a function does.
Edit: here is an example
https://coffeescript.org/#try:-%3E%20%0A%20%20for%20i%20in%2...
Edit: here is an example
https://coffeescript.org/#try:-%3E%20%0A%20%20for%20i%20in%2...
My favourite implicit return gotcha comes from the intersection of CoffeeScript and jQuery, where implicitly returning `false` from an event handler implies `preventDefault()` and `stopPropagation()`. This can even cause heisenbugs if your logging throws booleans around.
We have that in our codebase still. Not sure if it was intentional or not but it's going to be hard to undo.