## Haskell, <s>69</s> 68 bytes

    g x=any(elem x)$scanr(\_->concat.mapM(\y->[y++y,y++map(0-)y]))[[1]]x

Usage example: `g [-1,1]` -> `False`.

Even more inefficient than [@flawr's answer](http://codegolf.stackexchange.com/a/106386/34531). It takes too much time and memory for 4 element lists. To see that the list of OVSF codes (with a lot of duplicates) is actually created, try:

    take 10 $ c $ scanr(\_->concat.mapM(\y->[y++y,y++map(0-)y]))[[1]] [1..4]

which returns

    [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
     [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1],
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
     [1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1],
     [1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1],
     [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1],
     [1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1],
     [1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1],
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
     [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1]]

i.e. the list starts with all 16 element lists (4 times concatenated, because of `[1..4]`), continues with all 8 element lists and so on until it ends with `[1]`.

Edit: @xnor saved a byte. Thanks!