I also counted 28.
" the y.fwd shouldn't give you another stitch (not on purpose anyway )" I believe the yfwd is an inc (more or less a yo), and wyif just means bring it to the front w/o an inc.
"the next row is yrn then purl to end, resulting in 29 stitches total"
With 28 sts from the previous row the yrn before purling the rest of the sts will bring the count 29.
That's how I figure it works.