ну, сплайн разбить придется не на несколько частей, а на ооооочень много частей (грубо говоря - на отрезки или дуги из которых он собственно говоря и состоит на самом деле). а потом да, искать пересечения каждого отрезка со всеми остальными. и это даст ВСЕ точки самопересечения.