at least Octave is able to work correctly! Not at a first try, but when I redefine the whitespace to be empty, the delimiter to be something different than space (e.g. as comma), and use on %s as an output, it is working as I wish!
[s y m d] = textread('test.txt','%4s%4.0f%2.0f%2.0f','delimiter',',','whitespace','');
The octave help for textread gave me the crucial hint:
Unless whitespace is set to " (empty) AND at least one "%s" format conversion specifier is supplied, a space is always part of whitespace.
Otave finally shows that it is possible to have such workaround!