It is necessary to use limits to evaluate the value of the function at the edge of the interval if it is not a closed interval from that side. Because the limiting value of the function at point might be different from the value of the function at that point. For example evaluating without limits gives wrong result in this case:

```
In [4]: imageset(x, 1/x, Interval(-1, 0, True, True))
Out[4]: (-1, oo)
```