Declarações de vida explícita em objetos de característica mantidos por estruturas

Em resposta aessa questão há uma discussão sobre como se referir a objetos de características mantidos por estruturas que requer a seguinte sintaxe:

struct Bar<'a> {
    foo: &'a (Foo + 'a),
}

Isto é porRFC 438

Eu poderia pedir mais explicações sobre a declaração de vida dupla? Levans disse:

É necessário especificar o tempo de vida duas vezes: uma para a vida útil da referência e outra para o objeto de característica em si, porque as características podem ser implementadas para referências e, se o objeto subjacente for uma referência, você também deverá especificar sua vida útil.

Eu entendo a noção de uma vida para a referência na estrutura. Mas não entendo por que a vida não é para o objeto em que a característica é uma característica. Em outras palavras, não sei o que significa manter uma referência para uma característica sem ter uma referência à coisa subjacente para a qual ela é uma característica.

Existe um caso em que a característica e o objeto subjacente teriam vida útil diferente? O que significaria manter uma referência a uma característica sem se apegar ao objeto subjacente?

Perguntando ainda de outra maneira, por que a Rust não pode fazer The Right Thing (tm) com:

struct Bar<'a> {
    foo: &'a Foo,
}

onde a coisa certa (tm) seria interpretar isso como equivalente à declaração acima?

Desculpe bombardear com perguntas, mas eu senti que estava fazendo algo bastante básico (use uma característica como uma faceta genérica) e tive que descer profundamente pela toca do coelho e gostaria de entender por que a toca do coelho é tão profundo.

A mensagem de erro:error: explicit lifetime bound required&nbsp;foi decididamente inútil, porque já existe uma vida inteira.