So what is the preferred way of saying you want a stencil buffer? Should there be a fromContext method so you can set your own context in which case you can request a stencil?

Any particular reason why you don't want the stencil always created? It uses OES_packed_depth_stencil which is a fairly well supported extension and ES3 has no mention of this extension so it's in core. Pretty good assumption that the hardware can handle it.