This changes the behavior and needs to be documented. I've also looked at the following version:
```
    def isscalarlike(a):
        return isscalar(a) or (isinstance(a, np.ndarray) and a.ndim == 0)

    x = asanyarray(x)
    n2 = len(funclist)
    if isscalarlike(condlist) or (x.ndim > 0 and isscalarlike(a[0])):
        condlist = [condlist]
```
Which is a bit different again, but clearer I think.