JPQL을 직접 작성하는 경우가 흔해??

그게 아니라면 궁금한게
어차피 Criteria나 queryDSL같은 빌더에서 이미 한번 추상화가 이루어지는데

로우쿼리가 아니라 굳이 JPQL이라는 또다른 추상화 과정이 의미가 있어?
그리고 JPQL빌더보다 더 유연해야할 상황이면 JPQL을 직접 작성한다고 달라질것 같지가 않은데

닷넷에서 LINQ는 저런 중간 쿼리 없이 바로 로우쿼리를 빌드하잖아

기존 JPA표준 위에서 쌓아나가면서 생긴 구조인가?