It could be hard to encode JSON messages dynamically for the actual data to show in the web application, but you _can_ use other protocols from a browser too (CBOR is quite popular for this).
Maybe not. I'm using a micro controller with specific peripherals and ADC requirements for a high speed control system. This has less RAM and flash that you can probably get away with for a web server. We'd have to add a bluetooth radio chip, but I hear those go for well under $1. There are all kinds of embedded devices that have few resources but could be expanded with cheap Bluetooth connectivity. I realize this is changing quickly, but there will always be very small devices.
The product I worked on the bluetooth chip was more expensive than the CPU if memory serves me right and we did something similar. But I am not a board designer or procurement expert.
A long time ago I developed a project called "Handbag[0] for Android"[1] based around a similar concept--it targeted the short-lived "Android Open Accessory Protocol" initially over USB & later also over network/WiFi.
(My project notes from the time mentioned a long-term goal of also supporting Bluetooth but that never eventuated...)
Handbag made use of a "generic" Android app for UI display/interaction and an Arduino library that communicated with the app over a binary protocol.
The app would display various UI widgets such as labels/progress bars to display feedback from the accessory and text inputs/buttons to accept input forwarded to the accessory.
While the project did not take the world by storm, I was reminded when digging up these links that at least one person called the concept genius[2]. :)
----
[0] Because it let you "accessorize your Android phone or tablet". :D
[1] https://web.archive.org/web/20130205135845/http://handbagdev...
[2] https://www.doctormonk.com/2011/11/handbag-android-and-ardui...
Kinda of like a bluetooth X-terminal, but way way simpler. Think tkinter over bluetooth, probably sans canvas.
A bunch of people will say to just use wifi, make the device a Hotspot, and use your web browser. That's not a bad idea, but tiny devices aren't going to run web servers dishing out multi megabits frameworks.