The article for .NET Framework v.2 contains two examples.
http://msdn.microsoft.com/en-us/library/system.gc.keepalive(v=vs.80).aspx
The first one is of particular interest as it helps with understanding of Garbage Collector behavior.
But other versinos do not contain similar example. What changed in .NET Framework GC for missing example became not actual?
I see nothing in that example became invalid with later versions.
I would guess they were motivated by one of two reasons:
GCthat makes things less performant.