I guess it depends on how much you do in between calls to serial functions. If your program does MOSTLY serial IO, then you have problems. If you do "occasional" serial IO while mostly doing other stuff (including "doing nothing"), the current software serial library should be sufficient.
Is that an Arduino implementation thing
if you use ISRs to feed or empty the buffer then there should be no blocking.