As I understand it, you want the url for an entry to be /section/category-slug/entry-slug
. This is a little tricky, because if the entry has no category defined, it won't have a url, which is why you can't just set the Entry URL Format.
If you really want to do this, you can do it using routes rather than the entry URL format. Uncheck the Entries in this section have their own URLs box, and create a route for section/[slug]/[slug] that points to your entry template.
On the entry template, you can figure out the category and entry slugs:
{% set categorySlug = craft.request.getSegment(2) %}
{% set entrySlug = craft.request.getSegment(3) %}
get the category:
{% set category = craft.category.slug(categorySlug) %}
{% if not category %}{% exit 404 %}{% endif %}
get the entry:
{% set entry = craft.entries.slug(entrySlug).relatedTo(category).first %}
{% if not entry %}{% exit 404 %}{% endif %}
Now you have the entry, proceed as usual.
When you need the entry url, that will be:
/section/{{ entry.category.first.slug }}/{{ entry.slug }}
I would write a macro for the entry url, and the macro can deal with the possibility of the entry having no category.