I agree that it sucks, but we have no real choice if we want auto-completion on... and if we're programming without auto-completion we may as well be using MS Notepad.

I have verified that the format shown here works across the three IDEs you mentioned. PhpStorm also works with @var CLASS $variable.

I think it's necessary in PHPUnit to show that it's both a MockObject and also inherits all the mocked object's methods.

I would also argue that the use of dochints in limited circumstances is beneficial. For example, when defining class properties (as you are already doing), and when iterating over an array containing objects (https://github.com/sculpin/sculpin/blob/master/src/Sculpin/Core/Source/CompositeDataSource.php#L35) it would be beneficial to get auto-complete on it.