If you're referring to the use of FieldGroup: Why is that a hack? To me this is not only a visual grouping, but again, a semantic grouping of multiple fields and (just in this case) you happen to only need one bold title there on the left side. You could just as easily use my suggested technique to do this (which I think looks a tad bit cleaner than what you've recommended if you were willing to group those options together):
$composite = FieldGroup::create('Options', [
CheckboxField::create('Enabled', 'Enabled')->setDescription('Useful description goes here.'),
CheckboxField::create('Featured', 'Featured')->setDescription('Useful description goes here.'),
]);
The only hacky part I'm seeing here is that I think SilverStripe is killing the field descriptions (which would prevent you from doing what you wanted here). So that's not actually currently possible, so never mind :) But that's an unrelated issue and should be considered a bug IMHO. That or I'm missing a different object you can use as a wrapper (I'd assume it would be a child of CompositeField like FieldGroup is).
Re:
Well, even then if it's "just for one field" it's only a few extra lines of code (or one line since you can just wrap it in the new FieldGrup constructor/create() method). It's just a tradeoff of which you'll need more frequently and, since it's at a CMS/framework level, I think it makes more sense to go with the most consistent/logical route. I agree though -- I think it should be simpler and more intuitive and less "hacky" looking, albeit I don't see this hacky (in a practical sense) at all, except for the aforementioned description bug which is I think outside of the scope of the theory I'm trying to put across here.