With WPF I'm still curious how that conclusion came to be, and if you possibly could share an example of how it falls short, so perhaps I could provide pointers how to improve it? There's ways to move polylines efficiently and ways to do it very inefficiently. My streaming-service-layer sample uses some best practices to frequently update graphics in a special re-used render-thread pulse (regardless of it only updating points).
Because the vertices of a polyline changes the vertex buffers needed on the graphics card, there really isn't any way for any API to efficiently "move" polylines around the same way that points can be done, so yes there's going to be an additional overhead, but we have also spent a lot of times optimizing that.