The main reason is migration path. Migration from Yii 1.1 to Yii 2 was hard, but at least you could install these 2 frameworks at the same time and migrate some parts of app step by step. This was possible because there was only one class which had FQN conflicts (
Yii), but with some hacks, you could make it work.
Migration from Yii 2 to Yii 3 is also going to be hard, but unlike in Yii 1.1 ==> Yii 2 case, you will not be able to install Yii 2 and Yii 3 in the same project, since Yii 2 and Yii 3 shares the same FQN for most of classes. There will be no way to migrate step by step - you need to migrate all at once. For some big app, this means that migration from Yii 2 to Yii 3 will be impossible - it will be easier to migrate to completely different framework than to Yii 3 (since you will be able to install Yii 2 and different framework at the same and migrate only part of the code in each sprint). There will be no such problem if we use different root namespace than in Yii 2.
It may also better reflect the character of Yiisoft packages - now they’re more framework-agnostic. Using
Yiisoft as namespace may fit better for generic packages (this is no longer extension to Yii, why it has
Yii as part of the namespace?).