The sign function has an option of creating a signature with a recoverable public key. However, the verify function does not take advantage of this, and the public key still needs to be specified. Though the recover function can be used like so:
curve.verify(signature, data, curve.recover(signature, data))
This is kind of redundant, and could be done by the user simply not specifying a public key i.e. curve.verify(signature, data). The verify function, inside of the check for recoverable signatures, could simply extract the public key, and then use that, unless a different public key is specified.