I hear where you're coming from, but, your usages there, to me, seem inappropriate in exactly the way I'd fear. For example, I would write "let initial ..." as either "let init ..." (if a small, local scope) or "let initval .." or "let init_value ..." (if a larger than a few lines local scope). Same for "final". For "let override ...", I'd prefer "let should_override ..." or "let should_override_item ..." or "let override_item ..." or "let override_it ..." (depending on the size of the scope involved).
Now, for "abstract", that one is a little less clear-cut to me, but, I'd still rather see something like, "let (paper_abstract, paper_contents) ..." or, if in a small scope, "let (p_abstract, p_contents) ..." instead for greater clarity, or, in a really small scope (like 2 or 3 lines) maybe, "let (ab,cont) = ..." (though, I wouldn't prefer that last at all, but, I'm OK with it for really small scopes.
In other words, what I'm saying, is having these keywords available for use as identifiers isn't really needed. Why have the churn of taking them out of reservation, only to possibly need to re-reserve them at some point. Are we 100% sure that Rust will never want to have layout/implementation inheritance?