I don't like that it penalizes for sac flies but not for sac bunts or sac ground outs. Those are balls in play just like sac flies. Seems arbitrary.
There are no sac ground outs. A sac is only credited when the intent is clearly to sac an out for advancing a runner. The reason sacs bunts are not included in BABIP is that the primary intent was to sac an out whereas on a sac fly, the primary intent was to get a hit. The purpose of BABIP is to measure the hits over balls put in play with primary intention to get a hit, and thus sac bunts are excluded.
There has been contention that a ground to a middle IF that results in a 4-3 or 6-3 GO with RBI should be considered as a sacrifice similarly to a sac fly. However, the rules consider a fly ball deep enough to score a run more of a batting achievement than a ground ball, and thus the SF results in a more favorable scoring so far as BA is concerned. OBP and BABIP eliminate that "favoritism."
Sac bunts can result in some weird score keeping scenarios. On sac bunts, at least one runner must safely advance one base other than as result of an error that resulted in the failure of a PO of the runner (as opposed to an error that would not have resulted in a PO or a runner but still allowed one or more runners to advance further), and no runners be put out. If the batter reaches safely, it can be a sac bunt with an error, a sac bunt with a fielders choice, or a hit (it could also be catcher interference, but that would be really unusual on a bunt).
Weird sac bunt scoring scenarios:
Runners on 1b and 3b. Bunt fielded by pitcher, who could have easily gotten batter out at 1b, but chose to make instead play chicken with the runner on 3b keeping him from advancing, had no play at 2b as runner advanced from 1b, and batter safe at 1b. Sac to account for runner advancing from 1b to 2b with FC to account for batter reaching 1b.
Runner on 1b, bunt field by C who has play at 1b, but not 2b, and yet heaves the ball into CF, runner on going to 2b advances to 3b. CF throws out batter at 1b. Runner now scores. Sac to account for runner advancing from 1b to 2b, E-2 on throw to account for further advancement to 3b, FC to account for run scoring, no RBI, run unearned at that point (later became earned as subsequent batter HR), batter put out
8-4 on a friggin' bunt (second baseman was covering 1b and C ineligible for an assist due to the error).