If you set a breakpoint in File.js, it creates a tree element for File.js, and places the breakpoint tree element as its child. If you then pause the debugger and one of the call stack entries is at a line within File.js, clicking on that call stack entry will show the resource in the content browser and then select the breakpoint tree element's parent, rather than the call stack entry. I am guessing that Main.js may not know about the call stack entry's tree element being selected. So, it tries to match fuzzily based on URL.
<rdar://problem/17910833>
Yikes. That sounds really annoying. I'll take a look.
Well, this still selects the call stack entry. The duplicate selection on the resource seems harmless. It is a bit annoying to have what looks like a selection in two places in the sidebar. I think the intent was to have only one selection anywhere in that sidebar.
Yes, a selection in one section should clear the selection in the other section.