1.) It is always possible to store non financial data in Bitcoin. Pubkeys have to be stored and pubkeys can be jpegs. And there is no way to tell if they are jpegs.
2.) storing jpegs in pubkeys is expensive for anyone running a node. Since there is no way to tell it's a jpeg and since it can be possibly spent later, nodes have to store the outputs in a data structure called utxo set forever
3.) if there is a way to store the jpegs in a way that tells node runners "you don't need to keep this shit, it cannot be spent" and the sender pays the miners for it anyway, it's better to provide this options
4.) filters don't remove jpegs, they move jpegs to option 1 which is worse for everyone
5.) because of 1, there will always be jpegs in Bitcoin.
6.) because of consensus rules allowing mining of longer jpeg outputs, the filters won't do chicken shit. If someone wants to store a jpeg, they find the cheapest way to do it. Normally people put the tx to a shared mempool and miners mine whatever is most profitable from the mempool. But if nodes are stubborn and don't relay, and miners want to make money, they will make it possible for another way to submit a tx that will make their operation more profitable.
As a result of these, you should be running Core v30 and block filteroors on social media to keep your sanity.