型によって管理が変わるって他の言語でもあるだろ
C#で
{
 var a = new Foo();
}
という書き方が問題ないかは Foo の実装に依存する

なんでGCに任せられない型があるの?ダブスタを解消するために「全ての型で明示的なDisposeの呼び出しが必要」にしたりしないの?
とか言わないだろ