Found a reference myself: in MSX2 technical handbook, chapter 5 (TH-5B.TXT, section 7.2.2 Inter-slot call use) it reads:
In MSX-DOS, five kinds of inter-slot calls are offered and their entry
addresses are defined at jump vectors of MSX-DOS. These are the same as ones
in BIOS, so refer to BIOS above for their functions or use. Note that these
routines should not be used when calling routines in SUB-ROM from MSX-DOS.
* RDSLT (000CH) ....... read value at specified address of specified slot
* WRSLT (0014H) ....... write value at specified address of specified slot
* CALSLT (001CH) ...... call specified address of specified slot
* ENASLT (0024H) ...... make specified slot available
* CALLF (0030H) ....... call specified address of specified slot
No explanation (there) on why this is not allowed, or how it might cause problems if used to call the subROM. So official reference exists, however I'm still unconvinced there's a problem here...
Found a reference myself: in MSX2 technical handbook, chapter 5 (TH-5B.TXT, section 7.2.2 Inter-slot call use) it reads:
In MSX-DOS, five kinds of inter-slot calls are offered and their entry
addresses are defined at jump vectors of MSX-DOS. These are the same as ones
in BIOS, so refer to BIOS above for their functions or use. Note that these
routines should not be used when calling routines in SUB-ROM from MSX-DOS.
* RDSLT (000CH) ....... read value at specified address of specified slot
* WRSLT (0014H) ....... write value at specified address of specified slot
* CALSLT (001CH) ...... call specified address of specified slot
* ENASLT (0024H) ...... make specified slot available
* CALLF (0030H) ....... call specified address of specified slot
No explanation (there) on why this is not allowed, or how it might cause problems if used to call the subROM. So official reference exists, however I'm still unconvinced there's a problem here... 
@retrotechie : So it can work without the subroutine , have you done the trial ?
The reason for this, according to Alex Wulms in MCM 48, is that some DiskROMs couldn’t handle the the SUBROM being in page 0.
If it would work, that wouldn't tell us much. More interesting: a) find cases/conditions/systems where there are problems, and b) if such examples can be found, find the root cause of such problems. I don't know any examples, but also can't say that they don't exist. Perhaps there is a problem, but just on a few obscure systems that you could ignore. Or if you know the cause, maybe it's possible to find a better fix/workaround. Or it's just a few corner cases that you could avoid if you know which...
So if anyone knows of a case where calling the subROM from MSX-DOS (using CALSLT without going through main ROM) fails: please let us know, give details, post code etc!
Any news?
any better workaround?
