It's a "sequential" program. This means that each point created has a new, incremental ID. This is also the reason that sometimes you may want to use a formula on an earlier created curve, that uses an attribute of a line that was created later, it is not possible.
The same applies to deleting. Each point is dependent on the other. Which means, that if point ID 999 is used in detail X, you can not delete it. Same when point ID 999 is used by a line or point created FROM point ID 999, you can not delete it.
If you truly want to delete something, then delete everything in the order in which it was created and make sure it is not used in a detail. Then, you can delete.
What grace mentioned should be no problem, if you delete a line or a point or a curve which is used as a formula for another point, line, or curve, then you only need to "fix" the formula (i.e. just type in a random number instead of the name of the old point/line/curve). This is not your problem, it is what I typed.
This, in my opinion is a good thing since it almost forces you to make smart design choices. Always work 20 steps ahead and you won't have this problem. If the change is so fundamental, that it requires you to delete a lot of points, then just redesign the pattern. It creates less of a mess and be smarter about the design the second time.