It's obviously confusing to have multiple different styles to do the same thing. And these extra rules (including the empty ones) also end up in the output, so they create more work down the line.
The attached patch cleans this up to make them all look like the first style.
+1 for standardizing in this area. It's worth noting that Bison 3.0 introduced %empty for this situation, which is self-documenting. Until we get there, this is a good step.