If you have a small set of flags (ie: =< 3 features), you can use different outputs.
packages.x86_64-linux.default = ... # default version
packages.x86_64-linux.f1 = ... # feature1 enabled version
packages.x86_64-linux.f2 = ... # feature2 enabled version
packages.x86_64-linux.f1f2 = ... # feature1 and feature2 enabled version
...
Check this out