All peripherals will work from HSI reliably. The question asked is being asked in a wrong way I think.
None of the peripherals will fail in any way, being clocked from the HSI. But the result may be different than intended, as certain timing accuracy standards may not be met and that depends on the applications.
As a general rule:
NEVER clock USB and CAN from any free-running RC oscillator. It is not precise enough.
In some cases, even UART may not work as expected, even though clock is within a small tolerance (large data-bursts with short stop-bits and no inter-frame gaps).
In some cases, even when using a crystal, some things may not work, due to bad crystal absolute frequency accuraccy and (temperature) drift. Typically RF radio communications at UHF and above, when channels are very narrow-band, you may miss the target by a LOT when using a bog standard 50+ppm shit crystal.
Some thing may even become broken when when clocked using a correct crystal, when PLL (with too much output jitter) is used: typically: High speed (480mbps) USB and ETHernet. Avoid clocking any of these from the internal PLL of the STM32. (and think about it as the internal PLL may even use spread-spectrum modulation to lower the EMI, which on large packages(LQFP176, LQFP208,...
may become unacceptable!)
Some things may even not work when using a correct crystal type, but the oscillator around the crystal is designed incorrectly: Typical problem: Too little oscillator gain margin resulting in unstable oscillation, wrong load capacitance for the crystal... (RTC and low power oscillator circuits most of the time).
See AN2867 from ST.
So people, please, don't take oscillators / clock sources for granted. There is much more to them than just "putting a crystal there" and slapping there two 22pF caps.