To drive a car, one does not necessarily need to know the mechanics of how the engine works. This question falls in the same bucket because you're asking the candidate to come up with something that he'll never need to do. C++ 11 and Boost already provides the facilities to use smart pointers.
What you say is true - but the idea is not to use this in production code. It's just a means of testing some fundamental C++ concepts which I outlined in the post.