The only time it's not required is when note_init is called from a function that isn't exported. But the semantics of that are worth someone reading a chapter about, so I just described it as 'mostly' and defined the default.  Programmers familiar with exports will know the difference and can skip it, imperiling newbies that copy/paste their code and find it doesn't work for them. Newbies like myself a month ago, that didn't understand the difference, can pass in plugin and it will *always* work.