From the Linux manpage of hosts.deny:
This manual page describes a simple access control language that is based on client (host name/address, user name), and server (process name, host name/address) patterns.
This means hosts.allow and hosts.deny only works for services using client host name/address and user name like ssh, ftp, vnc etc, NOT for general p2p.
My hosts.allow only has very few entries in it and my hosts.deny contains ALL:ALL, so if this would be working for p2p I couldn't up- or download anything at all, lol
Of course IF you setup the service names in /etc/services correctly first so they're actually valid you might be able to add them in hosts.deny/hosts.allow, but then you wouldn't need ALL: as argument but the service name instead so you'd only control the access to those services ("wine" and "winmx" in your setup)
As to why spawning a daemon via inet.d/xinet.d is helping I'm kinda confused, lol.
I've been using winmx under wine on debian for quite a while now (>4 years) and have yet to experience any uploading problems....
The only thing I ever noticed is winmx sometimes having troubles resolving addresses, this can be fixed by either installing the package "winbind" (part of samba) or what I've actually done is set winmx to use external dns instead of resolving through the OS, i.e. I put in one of the openDNS addresses in settings > host name resolution in "use external DNS server".