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 <status>-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 was tested, the API fixed, the documentation wrote and is the recommended release for users and production enviroments

snapshot

a CVS snapshot from a certain date

devel

package is in "bottoms up development", anything may change