Lets say for example that your package relies on the "ping" utility which is included in both ip-tiny and ip-full. How would you define this dependency? You can't install both because they clash with each other. So PROVIDES sets up a "virtual package" with a different name that your package can depend on.
If your package needed a utility that was ONLY in the ip-full, you can still depend on ip-full.
This is my understanding of how it works.
So for nginx, i would define 3 separate packages
nginx-nossl
nginx-ssl
nginx-full
All three should PROVIDE "nginx". You should also not define any package called "nginx" as it is now a "virtual package" if that makes sense.