I like working with a version control system. It keeps my work in a pretty straight order, even using a really bad version control system such as VSS, it still something. Imagine the bad old days of software development without a version control system. Every time, a release is to be made, the whole source directory would be zipped up and copied to another directory before a build is made and deployed.
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.