Ну допустим, чисто теоретически, что есть способ через version добавлять или отключать фичи. Тогда по смыслу:
tokio = { version = "1.0.2", features = ["net"]} должен быть специализированный модуль
tokio.net, внутри которого version (net) {} или что-то такое и по коду его использование тоже идет через условную компиляцию. Насколько я в курсе, нельзя в version положить определение модуля, т.е. модуль net в любой случае будет объявлен и при "отключении" будет пустым. Наличие такого пустого модуля скорее всего может дать какие-то побочные эффекты, кгм.. например, если флаг версии будет забыт, то совсем неочевидно, почему оно не работает или почему что-то из модуля внезапно конфликует\затеняет, модуль же есть, это выглядит как-то странно и хуже в использовании, чем классическое подключение нескольких модулей\пакетов\etc. Возможно, есть какой-то способ избавиться от такого недомодуля или же как-то настроить его видимость, в зависимости от вкл\откл фичи.