Hi @bentraje, thanks for reaching out us.
With regard to your question, there's no "straightforward" method delivered, either in Cinema 4D Python API or C++ API, tailored to this specific scope but rather using the approach proposed by @Cairyn is the way to go (and personally I don't find anything clunky).
With regard to the GeListNode::Remove() as reported in the documentation it's just responsible for removing a node from a list and in C++ it's also return the object's ownership to the caller freeing Cinema 4D from being responsible to dispose that resource.
Best, Riccardo