I rarely see #3 yield better solutions, it's usually better to collaborate as a team on requirements and gotchas, but let one person own implementation.

But both backend and front-end? Do everyone have to be full stack?