Groupby wrong behaviour (continued)?
This is the continuation of #18866. 

The above issue has been closed and I don't understand yet why this is not considered a bug of pandas.
@jreback: I don't know how to ask for reopening #18866 and it is possible I didn't explain well what I mean. Here I try to rewrite it properly.

**Code sample**
```
import pandas as pd
from datetime import datetime

def legend(text, obj):
    print "\n" + "="*50 + "\n" + text
    print obj.head(1000)

df = pd.DataFrame({'dtime': [datetime(2017,01,01,1,5), 
                             datetime(2017,01,01,1,20)],
                   'val1': [11, None], 
                   'val2': [None, 31]  # returns a MultiIndex
                         # [31, None] <=== this returns a DateTimeIndex
                  })
legend("10 Original df", df)

df = (df.melt("dtime")
        .dropna()
        .set_index("dtime"))
legend("20 After melt", df)

group = df.groupby(pd.Grouper(freq="1H"))
legend("30 Group by dtime", group)

group = group["value"].apply(lambda x: x.sort_values(ascending=False))
legend("40 Find max 3 for each hour", group)

df = pd.DataFrame(group)
print "\n\nIndex info:", df.info()
```

**Problem description**
Swapping the elements in `val2`, groupby returns a different index type:

OK if `val2=[None, 31]`:
```
dtime                dtime              
2017-01-01 01:00:00  2017-01-01 01:20:00    31.0
                     2017-01-01 01:05:00    11.0
Name: value, dtype: float64
Index info:<class 'pandas.core.frame.DataFrame'>
MultiIndex: 2 entries, (2017-01-01 01:00:00, 2017-01-01 01:20:00) to (2017-01-01 01:00:00, 2017-01-01 01:05:00)
```

Wrong with `val2=[31, None]`:
```
dtime
2017-01-01 01:05:00    31.0
2017-01-01 01:05:00    11.0
Name: value, dtype: float64
Index info:<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2 entries, 2017-01-01 01:05:00 to 2017-01-01 01:05:00
```

**Expected output**
As both `val2` meaningful times are in the same hour, I would expect that in the second case the hour-group is also combined with `dtime` to return a MultiIndex. 

I would expect it to return
```
dtime                dtime              
2017-01-01 01:00:00  2017-01-01 01:05:00    31.0
                     2017-01-01 01:05:00    11.0
Name: value, dtype: float64
Index info:<class 'pandas.core.frame.DataFrame'>
MultiIndex: ......
```
