io.Discardソースコード を見ていて疑問点が2点あります。

Q1.

Goの基本的な文法に関する質問になってしまいますが、以下は何を意図しているのでしょうか。

// devNull implements ReaderFrom as an optimization so io.Copy to
// ioutil.Discard can avoid doing unnecessary work.
var _ io.ReaderFrom = devNull(0)

コード内のコメントから、devNullio.Copy で使われる場合に備えて「io.ReaderFromインタフェースを実装している」ことを宣言しているのだろうとは思うのですが、一体どういう理屈で上記がインタフェースを実装していることの宣言になるのでしょうか(そういう文法なのだと言われるとそれまでなのですが…)。

Q2.

以下のように WriteString 関数が定義されていますが、

func (devNull) WriteString(s string) (int, error) {
    return len(s), nil
}

そもそも io.Discardioutil パッケージに io.Writer 型の変数として宣言されているため、

// Discard is an io.Writer on which all Write calls succeed
// without doing anything.
var Discard io.Writer = devNull(0)

例えば以下のように呼び出すことはできません。

ioutil.Discard.WriteString("hoge")
// ビルドエラー:
// ioutil.Discard.WriteString undefined 
// (type io.Writer has no field or method WriteString)

一体なんのために存在しているのでしょうか。