Ответ 1

С# не врожденно поддерживает хвостовую рекурсию на языке, но вот интересная статья о похожей технике, которая может помочь вам в вашем ситуация

Ответ 2

К сожалению, этого не происходит, по крайней мере, пока нет.

Я не уверен, что сам стандарт указывает что-либо о (dis), позволяющем рекурсию хвоста. Независимо от того, что .Net поддерживает хвостовую рекурсию, так что было бы хорошо, если бы это пробилось в С#.

Если вам действительно нужна рекурсия хвоста на языке .NET, рассмотрите F # в качестве альтернативы.