would rather have done是有潜在比较的被动选择,
should have done是主观意义上的选择或潜在建议.
例:
I would rather have done than delayed.
我宁愿完成也不愿意拖着.
I should've done that by now.
我现在应当作(把它)完了.
有rather的就是有宁愿的意思,含义为另外的选择非常不靠谱,不得不这么做.
再例:
I would've rather gone.我还不如走呢.
I should've rather gone.我应该不在这的.