Can I commit experimental/unstable stuff?

Yes. But make sure, that you mark up the experimental/unstable status of the project in the documentation. The best place to do this is in the package.xml in the <state>-tag. The values for this tag are

alpha

early stages of development, all things could change (API, behavoir) without notice, expect lots of bugs

beta

API should normally not change, usable software, expect bugs

devel

a release for other developers who want early access to test and give feedback, code quality may vary from pre-alpha to stable

stable

the software has a fixed API, it has undergone tests, and documentation exists. This release is a recommended release for use in production environments.

snapshot

a CVS snapshot from a certain date