I can understand the confusion, especially with current “context caching” releases. It could very well be that OpenAI is working on their own formula in the back-end for Assistants.
In regards to being stateful they are referring to storing the conversation so you don’t necessarily need a database.
If you are comfortable with programming and intend to go against the typical conversational flow I’d highly recommend using ChatCompletions. It opens a lot of doors that Assistants close. Basically you are passing all control & responsibility of conversation management over to OpenAI when you use Assistants.
Kind of like the difference between driving manual and automatic . In 90% of cases it’s fine, but in 10% the driver just wants to vroom