Не совсем. Они сильно упрощают жизнь, но это не то же самое, что сборщик мусора, тебе всё равно самому нужно думать о времени жизни объекта, следить чтобы один указатель не оказался, например, в двух unique_ptr (или в unique_ptr и shared_ptr сразу), ну и само собой, веселье начинается, когда к этому добавляется работа с потоками. В общем случае, если тебе нужен указатель, который указывает на динамически выделенную память, то лучше воспользоваться ими, чем сырым указателем.