A me non risulta che sia inaffidabile... tanto più che se l'algoritmo è fatto bene è in grado anche di individuare due oggetti non più usati che si mantengono in vita a vicenda (so di per certo che il GC di .NET è in grado di farlo) e altre situazioni di questo genere.