How you structure your projects is really up to you, the main thing is to keep your code separate from mojoPortal code.
You could use a separate set of projects for each of your custom features if you want to be able to package them separately for deployment that is probably the way to go, but if you plan to deploy all your custom features together anyway there is certainly nothing wrong with just having one set of 3 projects for all your custom features, ie a web UI layer, a business layer and a data layer. This is how the mojoPortal.Features set of projects is constructed, we don't have separate projects for each feature like blog, forums, etc, the mojoPortal.Features set of projects contains a lot of different features grouped in the same projects.
Hope it helps,
Joe