In a research paper with NDVI values, differences were found for the same pixel between Landsat 5, Landsat 8, MODIS or Sentinel made after the corresponding atmospheric corrections. Can this be right? If so, is there any way to correct it?
As for your first question, the different sensors will return different NDVI values because of their different spectral and spatial characteristics. As towards your second question, there is significant agreement between Landsat 7 & OLI, OLI & MODIS:
(Yinghai Ke, Jungho Im, Junghee Lee, Huili Gong, Youngryel Ryu, Characteristics of Landsat 8 OLI-derived NDVI by comparison with multiple satellite sensors and in-situ observations, Remote Sensing of Environment, Volume 164, July 2015)
As the band intervals and spatial resolution of the satellite images you've mentioned and the used atmospheric correction algorithms are different not only NDVI but also other indices have different pixel based values.
The need to apply a transformation or correction depends on your application area. Even though there is an agreement, when using multi-satellite data for time series analysis, especially for phenological purposes, you will need to consider these differences. For example, lower vegetated areas has higher NDVI values with Landsat 8 than Landsat 7.
You can also check "Compare NDVI extracted from Landsat 8 imagery with that from Landsat 7 imagery" and "Comparison of the Continuity of Vegetation Indices Derived from Landsat 8 OLI and Landsat 7 ETM+ Data among Different Vegetation Types"