I'm not sure about rasterio, but you can use GDAL's gdalwarp function to overwrite the nodata values of each band in a multiband raster by placing the values inside quotes (single on linux, double on windows), for example this will rewrite the values of a five band raster to 0 for band 1, 1 for band 2, and so on:
gdalwarp -of GTiff -dstnodata "0 1 2 3 4" input.tif output.tif
However, this will give you warnings each time you use a different value for another band because the geotiff file format does not support different nodata values across the bands, from the gdal documentation:
"GDAL stores band nodata value in the non standard TIFFTAG_GDAL_NODATA ASCII tag (code 42113) for files created with the default profile GDALGeoTIFF. Note that all bands must use the same nodata value."
So, if you change the output format to another raster file format that can deal with the different nodata values such as GDAL virtual raster, you should be fine, such as:
gdalwarp -of VRT -dstnodata "0 1 2 3 4" input.tif output.vrt