Собственно появились недопонимания. Правильно ли я понимаю такие факты:
// Вызывается конструктор с параметром bla,
// при входе в функции, после выхода из не
// класс удолятеся.
User user("bla");
// Создаётся 2 объекта, user (и tmp1 например)
// В объект user копируется tmp1.
// В итоге 2 объекта
User user = User("bla");
// Создаётся 1 объект, и указатель копируется в него
// После выхода из функции удаляется автоматом
User* user = &User("bla");
// Создаётся 1 объект и сам никогда не удаляется вообще
User* user = new User("bla");
// Создаётся 6 статических объектов
User u1 = u2("text") + u3("text") + u4("text")