Purge unused data (e.g. particle system, or groups) by script
To permanently delete curve data blocks that have no users  without reloading the project file (which can be bit problematic at times), you can use this python code:

import bpy
from bpy import data as D

for block in D.curves:
    if block.users == 0:
        D.curves.remove(block)


It'll iterate through all data blocks of type "Curve" and delete them if they have no users.