No, there is no limit I am aware of, and a quick test says that you can use more than 3852 points anyway:
Point points = new Point;
Random r = new Random();
for (int i = 0; i < points.Length; i++)
points[i] = new Point(r.Next(0, 200), r.Next(0, 200));
privatevoid panel1_Paint(object sender, PaintEventArgs e)
Pen p = Pens.Red;
Works with no problems. I would suspect the problem is in your other code.
BTW: You shouldn't create a new Pen like that - you are responsible for calling Dispose on all graphics elements you create, so you should keep a reference to it, or use a stock item as I did.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water