R の subset 関数でフィルタ条件に論理 OR とか論理 AND を使う

R では subset 関数でデータフレーム (表形式のデータ) のフィルタができる。でも、論理演算子 || とか && とかを使うとうまく行かない。 | とか & なら大丈夫。

# emp.txt
id name inst
101 John Guitar
102 Paul Bass
103 George Guitar
104 Ringo Drums
emp <- read.table('emp.txt', header = TRUE)
#    id   name   inst
# 1 101   John Guitar
# 2 102   Paul   Bass
# 3 103 George Guitar
# 4 104  Ringo  Drums

print(subset(emp, inst == 'Guitar' || inst == 'Bass'))
# NG!
#    id   name   inst
# 1 101   John Guitar
# 2 102   Paul   Bass
# 3 103 George Guitar
# 4 104  Ringo  Drums

print(subset(emp, inst == 'Guitar' | inst == 'Bass'))
# OK
#    id   name   inst
# 1 101   John Guitar
# 2 102   Paul   Bass
# 3 103 George Guitar

理由は見当がつくけど (|| や && は短絡評価するから特殊) 仕様なのかどうかが分からない。ヘルプには何も書いていない。