Render programs are very specific group, which in most cases freely divide frame into as many chunks as they want. They are about the only group (out of video image/related) which can uses many cores well.
You have to add all elements- first load source data (render apps quite often read nothing), decode source (again- not really happening in render apps), do processing (quite often temporal in Resolve), optionally send data to external preview (which is very specific and require data to be pushed from GPU), export (in most cases compressed format which has limited parallelisation). Sorry, but Resolve is far form typical render app.
Resolve will NEVER scale as well as rendering apps. Fact that rendering apps spent a lot of time doing single frame (days sometimes
) is one of the key elements (in such a case even if you have to read/write data those processes are totally "covered" by time which takes to "generate" frame).
Maybe Resolve v15 got worse, I'm not arguing with this. I don't think Resolve code is very optimal, but it will never match render apps for sure, even if you spent a lot of time and money on it.