I think this concept needs some careful thinking and fleshing out. It'd be really great if players could automatically determine when to use "sign/song" subs and when to use full dialogue ones, for instance. In the end, it'd be optimal for players to let a user select two basic settings, and automatically determine everything else:
1. Default language
2. Show subtitles <always, for foreign audio or "forced", never>
Regardless of subtitle setting, try to find the audio track for that language; if it's not there, fall back on the file's default. (already how most players work)
With "never", show no subtitles.
With "always", first, check if the selected audio track has a linked track that isn't marked as "forced" in the default language. If so, use those. If not, search for any other non-forced track in that language. If it exists, use that. If not, search for any track, including forced, in the default language (OR move onto the next step? Not sure if this should be a preference in players?). If that still doesn't exist, use the file's default and hope for the best (or just show nothing? I'm not sure; maybe make this a preference too?).
With "for foreign audio for 'forced'", first, check if the selected audio track is in the default language. If it isn't, follow the steps used for "always". If not, check if the selected audio track has a linked "forced" subtitle track in the default language. If that doesn't exist, check for a non-forced one. If that still doesn't exist, show either the default "forced" track nothing.
This probably needs some more thought, but this is what I've come up with.