Inconsistent SettingWithCopyError behaviour
Consider the following minimal example:

```python
import pandas as pd

if __name__ == '__main__':
    pd.options.mode.chained_assignment = 'raise'

    # two identical data frames
    df1 = pd.DataFrame(data=[[1, 2], [3, 4]], columns=['c1', 'c2'])
    df2 = pd.DataFrame(data=[[1, 2], [3, 4]], columns=['c1', 'c2'])

    # manipulate df1 a bit
    df1 = df1[~df1.c1.isin([3])]
    df1['c3'] = 'foo'

    # a function doing the exact same manipulations
    def f(df):
        df = df[~df.c1.isin([3])]
        df['c3'] = 'foo'

    # call that function with df2 - boom
    f(df2)
```
#### Problem description

Note that the manipulations on `df1` execute with no issues. The function call `f(df2)`, however, which does the exact same thing, fails with a SettingWithCopyError.

#### Expected Output
1. I don't see why that error should be thrown in the first place because I don't see a 'chained assignment'.

2. It's inconsistent that the behavior for df1 and df2 is different despite the same code being executed on those two identical data frames.

3. If I'm wrong and the error does indeed make sense for the function call for whatever reason then I wonder how I'm supposed to perform these manipulations in a function without the error being thrown and without unnecessarily calling `.copy()` after each manipulation step.

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.7.3.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.24.2
pytest: None
pip: 19.1
setuptools: 41.0.1
Cython: None
numpy: 1.16.3
scipy: 1.2.1
pyarrow: None
xarray: None
IPython: 7.5.0
sphinx: None
patsy: None
dateutil: 2.8.0
pytz: 2019.1
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 3.0.3
openpyxl: None
xlrd: 1.2.0
xlwt: None
xlsxwriter: None
lxml.etree: None
bs4: 4.7.1
html5lib: None
sqlalchemy: 1.3.3
pymysql: None
psycopg2: 2.8.2 (dt dec pq3 ext lo64)
jinja2: 2.10.1
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None
</details>
