Note that JLCPCB plugs vias unless asked not to, making via in pad work just fine. At least for 4L+ boards.
They plug vias but with some resin. It's not conductive. So that's ok for larger pads (plugging this way will avoid vias to suck solder in) but can't be used for small pads like for BGAs, for which you need true VIP (which is plated over, VIPPO), which is available only for 6+ layers at JLCPCB and at a significant added cost. I've read somewhere that JLCPCB currently supposedly offers that at no extra charge, but using the online quote, it *is* definitely an extra charge (about $300 extra for a small 6-layer board in small quantities).
They plate it with copper after plugging. It's not entirely clear, but I read the following to say for < 6-layer boards they use epoxy, and for 6+ they default to copper paste (= conductive).
"Vias are filled with epoxy resin or copper paste and then plated over to achieve an opaque and smooth finish.
Click for detailed explanation
â‘ Vias are filled and plated over. Choose copper paste filling for applications requiring high thermal conductivity.
â‘¡ This process is the default for 6-layer and above multilayer boards.
â‘¢ Compatible with via diameters from 0.15 to 0.5 mm."
Here are the additional details:
https://jlcpcb.com/help/article/pcb-via-coveringIt seems the main reason to use copper paste would be for thermal conductivity.
But either way, with resin plugging and copper plating for exposed copper (pads) it should be perfectly find to use via-in-pad for BGAs. Assuming the via is small enough, of course.