The documentation almost exactly the same for both, so I find it really hard to see the difference between them. Based on this Q&A, the sole difference is
[...] that checkpoint node can upload the new copy of fsimage file back to namenode after checkpoint creation where as a secondary namenode can’t upload [...]
It doesn't seem correct, because the Secondary NameNode can upload the new FsImage, based on this and this.
Can the Checkpoint Node be considered as a one-to-one replacement of the Secondary NameNode? What are the added benefits? Was the code cleaned up between the two or something like that?