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">
Changing the weight from regular to medium also does not help, the offending characters instead of being displayed with Latin Modern Mono are
now displayed with: #<font-object "-GOOG-Noto Serif Display-medium-normal-normal-*-57-*-*-*-*-0-iso10646-1">
while the rest of the characters are displayed with #<font-object "-JB-JetBrains Mono-medium-normal-normal-*-57-*-*-*-m-0-iso10646-1">
I have also included screenshots from emacs -Q before, emacs -Q after and hb-view from JetBrains
Hope this makes things clear, if something is still missing please tell me.
Thanks