Подробности о том, что происходит, когда структура реализует интерфейс

Я недавно сталкивался с этим вопросом Stackoverflow:Когда использовать структуру?

В нем был ответ, который сказал что-то немного более глубокое:

Кроме того, следует понимать, что когда структура реализует интерфейс - как это делает Enumerator - и приводится к этому реализованному типу, структура становится ссылочным типом и перемещается в кучу. Внутренний по отношению к классу Dictionary, Enumerator по-прежнему является типом значения. Однако, как только метод вызывает GetEnumerator (), возвращается IEnumerator ссылочного типа.

Что это значит?

Если бы у меня было что-то вроде

struct Foo : IFoo 
{
  public int Foobar;
}

class Bar
{
  public IFoo Biz{get; set;} //assume this is Foo
}

...

var b=new Bar();
var f=b.Biz;
f.Foobar=123; //What would happen here
b.Biz.Foobar=567; //would this overwrite the above, or would it have no effect?
b.Biz=new Foo(); //and here!?

Какова точная семантика структуры типа значения, которая обрабатывается как ссылочный тип?

Ответы на вопрос(4)

Ваш ответ на вопрос