I have had many clients that did things like you as well. In your world, you might not need a development branch. I think you are using master like a development branch, which is fine for you, it seems.
Some organizations have high ceremony, however, and everything requires debate and approval. In those places, the development branch can function as a place where all working code comes together before being split off in to release branches and eventually to master. In the chart you showed, feature branches are where code lives before it is working. The development branch is where it goes once it's fit to associate with well-behaved code. From there, at some point a snapshot from development feeds the release branch, which might remain active for weeks or months while people hem and haw about QA cycles, final feature set, etc. Eventually the release branch is promoted to master, which represents production at all times.
Since your current setup is working for you, however, perhaps that's all you need. It certainly makes for a less cluttered world.