With a Pihole, you aren’t preventing the device from reaching the internet, you’re just refusing to provide it answers to its DNS requests. That means that it can’t translate a domain name (example.com) to an IP address (1.2.3.4) using your DNS server. But there’s nothing stopping it from using a different DNS server whose IP it has hardcoded, and nothing stopping it from then talking to anything on the internet once it has the correct IP to use.
In contrast, the other poster sounds to be using a firewall to apply ACLs. That means that the only way to reach the WAN is by passing over the firewall, and the firewall can apply rules about what traffic it allows. That prevents the device talking to a hardcoded DNS server, or talking to something on the internet if it alreadt knows its IP.
The other poster also talks about adding specific exemptions to these ACLs for specific services. So, e.g. letting the TV reach Jellyfin, but only Jellyfin & not all the other devices on the network. That reduces the risk of an attacker using the IoT device as a way to attack the rest of the network, since there’s less stuff to attack. You’re right that this is a fairly marginal gain for an IoT device which doesn’t have WAN access anyway.
The downside of this approach is that the device enforcing the ACLs has to handle all the network traffic. That means it needs more processing power to take packets, apply the ACL rules and then decide whether or not to send it onward. The upside of a Pihole is that DNS is a relatively tiny amount of traffic, so it takes much less processing power to handle just DNS.
Sure, but that’s not the setup you described in the original post. I think that’s probably where your confusion is coming from - people are responding about a setup that’s just a PiHole, not a PiHole plus router features to ensure that it’s used.
Ultimately any setup that allows the device internet access is going to introduce some opportunities for tracking/telemetry/ads. If the vendor really wants to they could just channel all that data through a single HTTPS connection, along with the useful data you want to let the device access. You won’t have any way to inspect that traffic and selectively block it, so you end up having to chose between blocking everything or blocking nothing.
Your setup sounds like it’s reaching the privacy/functionality trade off that you want.