Первый и второй варианты по сути синонимы, только второй является сокращенной записью первого. Его можно использовать, если не нужно передавать параметры в конструктор класса. Если нужно, то лучше использовать таки первый, по соображениям читабельности кода. Разница в быстродействии между ними ничтожна.
Третий вариант не для того, чтобы так вызывать объекты. Он в 95% случаев вообще не требуется разработчику, к тому же в этом случае лишний раз вызывается функция. Для разработки фреймворков \ CMS он более чем полезен, т.к. позволяет оперировать переменными с именами объектов, классов и т.п.