Write protection assumed that O_APPEND handling at open time is
sufficient, but the flag can be cleared with F_SETFL. That's maybe
worth rejecting, but that's harder to do without some clear layering
violations.
Hole-punching also violates the spirit of append-only, so reject that
on files that are append-only.
Note that we don't reject IMMUTABLE here- UFS seems to historically
not care if a file transitions to IMMUTABLE after it's opened, so follow
suit here instead of trying to tighten it up. ZFS will apparently use
the more constraining logic, but that's OK for now.