Q:

Como descobrir em que geração do garbage collector um objeto está alocado?

Considerando minha pergunta anterior sobre as gerações do GC, gostaria de entender se considerar o "momento" pelo qual um objeto está passando dentro do seu ciclo de vida, traz algum benefício ou é necessário para resolver algum tipo de problema?
Para que eu programe corretamente, preciso saber a geração na qual um objeto está alocado?

A:

Sim, é possível com o método GC.GetGeneration().
A utilidade prática em códigos normais é discutível. Você nem pode se valer muito disso porque é detalhe de implementação. É útil para fazer diagnósticos, medições, experimentos e talvez alguma coisa muito avançada, provavelmente uma ferramenta de desenvolvimento mais que uma aplicação normal.
O que precisa saber é que o ideal é que os objetos morram jovens ou vivam para sempre, não precisa saber em qual geração ele está. Quando dizemos que deve evitar que um objeto chegue na Gen2, não quer dizer que você precisa ficar monitorando isso. O problema da Gen2 é que se ela tiver que ser coletada pode ter uma pausa muito grande.
using System;

public class Program {
    public static void Main() {
        var objeto = new object();
        Console.WriteLine($"Geração {GC.GetGeneration(objeto)}");
        GC.Collect();
        Console.WriteLine($"Geração {GC.GetGeneration(objeto)}");
        GC.Collect();
        Console.WriteLine($"Geração {GC.GetGeneration(objeto)}");
    }
}

Veja funcionando no ideone. E no .NET Fiddle. Também coloquei no GitHub para referência futura.

