Like pyrtin said above, every developer will advocate the CMS or framework they are most familiar with.
I've used Joomla in past projects, which is the most popular CMS (second maybe only to Drupal but I dought it).
CMS frameworks let you build the bulk of the application very quickly, using Joomla for instance I did not have to build an authentication or menu system from scratch and the backend admin panel looks very complete and professional, so within 2 weeks I had a solid looking application. It's a facade more than anything, because the last 10% of the application took me about 3-4 more weeks and the client was sorely disappointed, as was I.
The difficulties arose from the client adding features which are not easily supported by Joomla, like SEF/SEO URI's for a custom component I had built.
Had I built the application from the ground up, custom URI's would not have been a problem, but Joomla requires a lot of extraneous work to get nice URI's to work properly and required knowledge which is not easily obtainable via Google.
Likewise, I have used WordPress to build basic sites, clients are happy at first because they see admin panels and everything very quickly, but new features come in, and tihs requires building custom modules/plugins. WordPress has a notoriously bad codebase, very difficult to work with, IMHO.
So you see, unless you hire one of the core developers (someone who is intimately familiar with the entire design of the system which there are about 100-200 globally) your developer is going to hit road blocks sooner or later, likely grow tired of working with a unknown complex system and jump ship.
You developer disappearing is not unusual, hiring freelancers, this will happen probaly in one of every three developers.
Freelancing is really difficult in software development, it's been romanticized over the last decade with the proliferation of outsourcing to India and companies claiming amazing success. The reality, in my experience freelancing doesn't work.
1. Communication during software development is mission critical. Solo developers are rarely interested in having phone conversations, I never charged for my time and I know many others don't take phone time into account when quoting a project.
2. Freelancing is synonymous with fixed price. I realize as a client your concern is a project will last forever and constantly cost you money. The reality is, software really does become a living system. Features are added, techniques are changed and code is improved to meet new requirements, security patches are applied, new attacks are discovered and fixed, etc.
To make matters worse, it's almost impossible to quote a project cost with any amount of accuracy. Smart developers charge a markup of three to four times what they initially estimate, in which the client usually pays more than they need too, likewise, non-business savvy developers make an estimate and under cut the competition to try and get your contract. In the latter case, you still lose as a client, because working for free sucks and that developer will eventually find a better job and leave you high and dry. Iv'e done it and I know most others who have attempted freelancing have done it at least once.
The best thing to do is find a developer and hire them on a quarterly basis. Don't expect the project to be 'finished' as that simply doesn't happen in software, unless the project dies and serves no one any purpose.
You can ask for milestones every week, ask the developer to have certain features implemented with a week or two, ask them if they feel it's fare and continue working in this fashion. Fixed budgets do not work in profesisonal software development.
As for hiring someone to perform code reviews. Two sets of eyes certainly wouldn't hurt, but realize that every developers idea of quality is usually wildly different. If a developer is interested in architecure and design, then keeping dependencies to a minimum and keeping them abstract if possible is probably their modus operandi, whereas less experienced programmers are not even aware of the consequences of weird dependencies, until they post their code on these forums and one of us bring the mistakes to their attention. Even then it takes an open minded programmer to accept their faults before they fix them. And sometimes, techniques really are subjective.
You could hire somoene who specialized in security and ask they go over your code looking for XSS, CSRF, SQLi and various other exploits, but this would probably be a slow process, as they essentially have to step through your code line by line and possible use an interactive debugger to really dig into the code.
There are many attributes you can request from a developer to ensure you are getting higher quality code, but the more experienced the developer the more they cost, which as a small company is probably a concern for you.
1. If they use an existing framework -- good indication they have been around enough to know they don't want to reinvent the wheel. Don't accept custom frameworks, most of the time they are simply garbage, nothing but the interpretation of MVC from a single developer after reading a single article.
2. Existing projects. This at least demonstrates they are capable of 'finishing' (for lack of a better word) a project.
3. Forum participation. Most of the developers on here, sitepoint, etc that are active members are who I would hire if I were looking for developers. Some are sitll newish to developing but activity on here shows me dedication and usually a willingness to learn and desire to be the best. I'm being biased here as I'm #9 or #8

but still I stand behind that 110%
4. Ask them what best practices they adhere to, ask them for a definitive list and post that list back here for review. I'll tell you whether it's a lot of redundancy, bulls**it or otherwise.