I think I may have found the problem here, JetBrains Mono does not have the glyphs for these
"faulty" characters that is why Emacs chooses a different font for them, but the thing is these characters
can still be displayed in the correct font i.e. JetBrains Mono by combining the glyphs which made up the
unsupported glyph, this is why hb-view was able to display them I guess.
For example entering ṃ (#x1e43 Latin small letter m with a dot below) will result in it being displayed in a different font,
but entering ṃ (m + #x323 Combining dot below) will result in it being displayed with JetBrains Mono.

So now the question is should these characters be decomposed to better fit with other characters when the font does not support them?

On Fri, Sep 30, 2022 at 5:18 PM Eli Zaretskii <eliz@gnu.org> wrote:
> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Fri, 30 Sep 2022 16:53:01 +0530
> Cc: 58184@debbugs.gnu.org
>
> Here are the steps to reproduce:
> 1. emacs -Q
>
> 2. enter these three words:
> hṛṣyatha (h#x1E5B#x1E63yatha)
> kṣiptaḥ (k#x1E63ipta#x1E25)
> viśāmaḥ (vi#x015B#x0101ma#x1E25)
>
> At this stage everything is fine, all of the characters use the same font therefore all of them return the same
> font after evaluating (font-at (point)) on them:
> #<font-object "-ADBO-Source Code Pro-regular-normal-normal-*-32-*-*-*-m-0-iso10646-1">
>
> 3. Now eval the following in the buffer
> (set-face-attribute 'default nil
>    :font "JetBrains Mono"
>    :weight 'regular
>    :height 170)
>
> Now you'll notice that the font for some of the characters above are different from JetBrainsMono, these
> characters are:
> ṛ (#x1e5b)
> ṣ (#x1e63)
> ḥ (#x1e25)
> (font-at (point)) returns #<font-object "-UKWN-Latin Modern
> Mono-regular-normal-normal-*-57-*-*-*-*-0-iso10646-1"> on all of them
> while for the rest of the characters gives #<font-object "-JB-JetBrains
> Mono-regular-normal-normal-*-57-*-*-*-m-0-iso10646-1">

I downloaded the JetBrainsMono font, and I see that it doesn't have
glyphs for these characters.  Its coverage of the Latin Extended
Additional block is only partial: only 97 out of 256 characters.

So I think Emacs does TRT here, at least with this font I have here.

In your original report you said the characters were supported by the
new default font, but that is not so in this detailed recipe.

Or maybe you are using a different version of JetBrainsMono?  I have
v2.242 here.