Using a version control system by itself is part of the way there, but it needs to be supplemented by a set of rules or procedures. At end of the day, the version control system is a tool and without a well defined set of rules or procedures, things can get rather bad.
To be on trunk means that the source code will always build for all the targets. If the trunk fails to build for any of the target, it is consider a broken and it is a show stopper.
To be on trunk means that it is a evolution of the latest stable release. If this is not the case, it means that experimental features are being trailed on the trunk rather than on a branch. I think that the only exception of this is a team of one, even this is potentially dangerous.
To be on trunk means that all the commits and changes on the trunk have a comment associated with it. The trunk contains the latest code set in it and all changes must be traceable. Not being able to trace changes on the trunk is just as bad as breaking the build on trunk.
The bottom line is that trunk is the most sacred of code sets and must be treated with care.