The reason you cannot set F to be non-bold is because first-letter does not apply to inline elements.
You can demonstrate this easily by looking at the following snippet.  The span is displayed as a block element and then correctly removes the bold from the first-letter:
p::first-letter {
  font-weight: bold;
}
p > span {
  display: block;
}
p > span::first-letter {
  font-weight: normal;
}
<div>
  <p>
    <span>
      Foo
    </span>
  </p>
  <p>
    Bar
  </p>
</div>
 
 
The reason is described further in the documentation here:
The ::first-letter CSS pseudo-element applies styles to the first
  letter of the first line of a block-level element, but only when not
  preceded by other content (such as images or inline tables).