I am in the process of building a picket fence (picket by picket). I made 8 inch holes and used 4"x4"x6' posts for my 4' fence. The upper back railing is a about 38" off the ground. So around 2 feet of the post is in the ground for every post. Corner posts are 8' posts and cemented into place. The tops were trimmed to the top railing to be flush. Also the 8' posts are buried deeper, tried for around 4'.
Cementing the posts into place can help and hinder in the long run. It will help keep it in place longer. But in northern climates the cement and post is likely to go through many freeze and thaw cycles over the winter. Once the treated posts dry out a little they will move away from the cement allowing water around the post to freeze. It will also take a VERY long time to dry out. This, even with treated posts, will cause them to rot faster. Not the mention the freeze and thaw cycles along with the extra moisture, are likely to cause the cement to not hold up.
For stability, I would do cement on only corner posts and gate posts. These will be stress points anyways. If you could get it compacted enough you might get away with doing crushed rock as well. The posts that are not set in cement currently in my yard are just as firm as the cemented ones, at least for this year. But also the ones not cemented in will be much easier in the long run to replace if needed.