Entity Framework Core / SQLite: GroupJoin após a junção de resultados "niveladores"

Usando o Entity Framework Core 2.1 e um banco de dados SQLite, obtenho um comportamento diferente de um LINQ GroupJoin se eu o usar após outro Join. Não está claro se isso é um bug ou se há algo que estou ignorando.

Eu criei um projeto mínimo do VS2017 para reproduzir isso, que pode ser encontrado aqui:
https://gitlab.com/haddoncd/EntityFrameworkGroupJoinIssue

Neste exemplo, recebo um objeto para cada linha na tabela Blog, cada uma contendo vários PostTitles:

db.Blogs
    .GroupJoin(
        db.Posts,
        s => s.BlogId,
        p => p.BlogId,
        (s, ps) => new
        {
            s.BlogId,
            s.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.BlogId))

Mas neste exemplo, os resultados são "nivelados" - recebo um objeto para cada par de postagem de blog como você faria em uma junção externa do SQL convencional:

db.Subscriptions
    .Join(
        db.Blogs,
        s => s.BlogId,
        b => b.BlogId,
        (s, b) => new
        {
            s.SubscriptionId,
            b.BlogId,
            b.BlogTitle,
        }
    )
    .GroupJoin(
        db.Posts,
        x => x.BlogId,
        p => p.BlogId,
        (x, ps) => new
        {
            x.SubscriptionId,
            x.BlogTitle,
            PostTitles = ps.Select(p => p.PostTitle),
        }
    )
    .OrderBy(x => x.SubscriptionId))

questionAnswers(0)

yourAnswerToTheQuestion