This is definitely a good way to do things. But I think if people want to have their own systems in their own sub-projects that's fine too. I don't want to stifle creativity on account of textbook SCM practices. But now may be a good time to start brainstorming ground rules. Here's how I'd draft them:
1. Create a directory in subversion with your sub-project name before comitting any new projects
(e.g., The 'texas holdem' project would go into 'svn://rubyforge.org/var/svn/phillyonrails/texasholdem'
2. Be _very_ careful when releasing gems. Once a gem is released it will propagate to mirror servers. Choose a good name and respect your users.