It is most convenient by far to set defaults from within the app, but I don’t think it makes the most sense, it produces too much “spooky action at a distance” where e.g. because you clicked a button in Edge, now when you’re in Chrome and click on a pdf, Edge opens up, or vice versa.