It's done currently in Pyodide: Python with DOM integration running with WASM. Minimal application with stdlib is around 5.5MB after compression now. Not small but still manageable depending on the use case.
Still I agree with your other comments, and in particular not being able to share caches in the browser is very unfortunate (but understandable).
Still I agree with your other comments, and in particular not being able to share caches in the browser is very unfortunate (but understandable).