Earlier quoted context omitted.
Any time you'd otherwise use EAV.
EAV is considered an antipattern. While wouldn't rule out using it, it probably means it should be avoided if there is another solution.
If I couldn't use JSONb with indexes (and triggers for custom foreign key checks) it'd be much harder to do this in in a relational database (and the data is relational, it just isn't consistent across all types).
Perhaps this would be better in a Triplestore but there are a lot of features of postgres that are not available in them.