In case of a snowflake schema you will have dimensions joined to dimension. There is nothing inherently wrong with this, but Cognos modelling requires you to reduce the snowflake to a single model query subject. In other words , a fact is only joined to x dimensional objects (without further branching) This results in true starschemas.
Cardinality of a join depends on the nature of the database, there is no such thing as best practice.
The need for defining outer joins can have serious effects on performance though..
Ties Blom