I think the key numbers to compare in a study like this are the number of positive labels (in this case, homicide offenders) vs. the number of variables in the model. With n positive labels and n variables, you can almost always find a set of weights that achieve high accuracy. (That applies even though they're using cross-validation -- I suspect the experimenter tried multiple treatments, so it's very easy to trick oneself into believing you've found "the" model.)
For the control set, the model gets 82% accuracy, vs 87% if they had simply classified everybody as a non-murderer. That suggests mild over-fitting to me.
The other two controls are interesting, especially the one trying to match demographic variables, but the sample sizes (n=20, n=21) are too small IMO to conclude much, and I don't think you can pool the control groups since they're drawn from different populations.
That's not to say their conclusions are wrong. But studies on small sample sizes produce spurious results all the time.
The flip side of that observation is that large-scale machine learning techniques applied to relatively "shallow" data sets might produce some very surprising results.