これは確かにigraphのバグであり、矢印がなくてもigraphが矢印のためにスペースを残しているために発生します。次のigraphバージョンで修正します。
回避策として、実行できるのは、各エッジを2回重ねてプロットすることです。このためには、グラフを有向にしてから、edge.arrow.mode
オプションを使用して矢印を回避する必要があります。これが機能するのは、エッジの一方の端だけが矢印プロッタによって変更されるためです。この方法でグラフをプロットするのは少しばかげていますが、今のところ、より良い回避策を見つけることができません。私が言ったように、新しいバージョン(0.6.4以降のもの)にはこの問題はありません。
library(igraph)
# Zoom in on the critical region, although the gap always has the
# same size, unless you make the plotting window bigger
g <- graph(c(1,2), directed=FALSE)
par(mar=c(0,0,0,0))
plot(g, edge.width=2, vertex.size=20, edge.color='black', main='',
rescale=FALSE, xlim=c(0.9,1), ylim=c(0.9,1),
layout=rbind(c(0,0), c(1,1)), vertex.color="#ffffff11")
# This plot should have no gaps
g2 <- as.directed(g, mode="mutual")
par(mar=c(0,0,0,0))
plot(g2, edge.width=2, vertex.size=20, edge.color='black', main='',
rescale=FALSE, xlim=c(0.9,1), ylim=c(0.9,1),
layout=rbind(c(0,0), c(1,1)), vertex.color="#ffffff11",
edge.arrow.mode="-")