let r = unsafe { &*p };
It looks as if it's building structs out of information in (mutable pointers) to other structs without an Rc in sight. Which makes sense for a C parser: you've got a table with data, so you just link to it. It's fast, and when you know you're not going to touch it, it's safe. But this doesn't make the Rust code any better than the C code.
But your explanation isn't "much more plausible". It is based on absolutely nothing, and the priori are against it. You only have a vague idea of correlation between answers (based on probably equally unreliable papers), but nothing on the missing factor. In this paper, however, they at least take some effort to find structure in the responses, and this factor correlated stronger than the others. Shaky, but it has a basis: phones/social media/etc. are terribly addictive.
> In contrast, psychologists mightily struggle to find replicable experimental results. That's what you need here.
No, that's not needed here. The paper might not be good, but we need to get rid of the phones. It's obvious that it's a problem. Just try to take someone's phone away. What "we" do not need here is distraction from the problem.