I used to automatically provide feedback of why a candidate did not pass the interview, then I had a few sour encounters where the candidate just did not react professionally. For example, one candidate bemoaned the emphasis on CS fundamentals in our interview. In that case, the candidate was coming in from a mostly front-end webdev background, but our tech stack extends far below the typical webdev "full stack", where knowledge of OS/Networking/Compiler fundamentals is helpful in everyday design decisions. As a small team, we bias towards generalists for now, so while the person might be a great fit for his skillset in another organization, it just wasn't a great fit for us at that time. I tried to explain this, but I received a wall of text complaint email back. I had taken an hour out of my day to write immediate and specific feedback about his interview, and all I got was pushback. This is probably why HR stands between engineers and candidates.