Devs testing each others' code should not be done instead of testing by a focused QA specialist, but would be great in addition to testing by a focused tester. Developers are skilled in thinking about how to make the product work. Testers are the only people on the team (BAs, PMs, devs, etc.) who are focused on figuring out how the product could fail. It's a very different mindset. Think about your "down time" work - e.g., when you are outlining projects in your head while showering. Do you think, "Oh, I bet this would be a good way to tackle that feature!" or do you think, "Hey, I should see if I can get that code to fail if I do THIS!"? Work doesn't just happen in the office, and devs probably won't be working on breaking code in their "free time". Testers should also accumulate a wide variety of knowledge of testing tools and techniques and experience choosing between them that devs don't have, and think intuitively in terms of coverage.
At the same time, cross-disciplinary experience is a very Good Thing, and there is always a benefit to working with other developer's code. Having devs put more effort into testing before a specific QA / testing person looks at the code will probably result in better quality code, which will probably result in faster test turn-around, better test coverage, and may even reduce (but not eliminate) the number of dedicated testers that are needed.
If you really have to make trade-offs due to low head-count availability or if the skill pool for QA is exceptionally bad where you are, this setup would be better than nothing - but the goal should still be to get a real tester in before the team grows too big.