Use parental controls, maybe Dnsmasq, or a nanny-capable firewall-gateway-router box that's been configured on the edge of your network.
The /etc/hosts file also has specific sequence to get it reloaded; that file is read once and subsequenty cached. IIRC, you need to either /sudo dscacheutil -flushcache/ or /sudo killall -HUP mDNSResponder/ the DNS resolver.
If your child is technically inclined, or knows how to do basic internet research, or has discussions with the more nerd-ish among her peers, your child can learn how to bypass /etc/hosts and Dnsmasq using her own DNS translations, or with her own DNS services. That possibility would point toward either parental controls (easy), or the firewall-gateway-router box (added cost, but can block some or all systems on your local network).
Here's how easy it is to bypass the /etc/hosts block; launch Terminal.app and issue the equivalent of:
dig +short @184.108.40.206 host.example.com
for the host.example.com host that you're (she's) interested in. (There are other commands that can be used; more than just dig can be used here, and there are web sites that can perform this translation for you.) Then connect to the IP address that this command emits. Your /etc/hosts block will not prevent this, and will not block this.
If your daughter is somewhat more technically savvy, a VPN will bypass the /etc/hosts blocks. She'll need access to a VPN server, and those are available from various free and very low-cost sources...
Thank you for your detailed response MrHoffman. (And thanks to Camelot and etresoft for adding, too.)
I've decided to forgo the restrictions that I was going to put in place and instead just monitor her computer's log files to see if she is observing the rules we agreed upon. It involves more trust upfront, but for the time being I think it is best. She is somewhat technically savvy, although I'm not sure she would've figured out how to bypass the hosts file anyway.