I thought -w was weighted and -O was optimised, so I tried
$ hfst-fst2fst -w -O -i sme.automorf.hfst -o foo.hfst
but got an optimised unweighted hfst out, since -O means "optimised unweighted", not just "optimised".
Maybe there should be a warning if the user passes conflicting arguments, instead of silently overriding previous arguments.