[I now see Hans Aberg's reply - so ok, it's an artifact of LALR(1), I
can live with that - and I hereby second any motion to introduce
that
LR(1) option]
It's not only an artifact of LALR(1). AFAIK, bison table generation
uses
$default rules which might create additional (though in the context
invalid)
reductions, to compress the parsing table, because then reductions
don't have
to be stored for every input token explicitly. So, the behaviour
you're
seeing is only partially due to LALR(1), but also to the table
compression
algorithm employed by bison. An LALR(1) parser would not reduce on
state 1
either, because there's no way that you can see lookahead A or F in
any form
of combined LR(1) states (which state 1 is).