What problems could happen if I replaced add_filter and add_action with the function calling

I hope I understood you correctly as your question is a bit scrambled

BACKGROUND

Functions, just like your car, are pretty useless objects until they are put to use of some kind. Simply being defined in functions.php or in a plugin makes functions as useful as a car parked in a garage, it is there, but doing nothing useful at that given point in time.

That is where actions and filters come in. Your function can be hooked to some filter or action where it can perform a given duty, make it useful, it is like driving your car to work now, it became a useful object. (Functions can alse be called directly into a template to make it useful)

Hooks have specific tasks

  • filters are meant to change the value of the variable passed as first argument in the callback function hooked to the filter

  • actions are suppose to perform some kind of duty specified by the callback function, this can be anything which falls in scope of that action like a redirection to another page or changing query variables inside the WP_Query class

Hooks are not just used by core, but by plugins and themes as well. The main purpose of any hook in any scenario is to make something dynamic and editable without having to modify the given file directly. A theme, plugin or core can be altered by a custom plugin without having to directly change any piece of code. This ofcourse have huge benefits when it comes to updating core, themes and plugins

THEME LEVEL FILTERS AND ACTIONS

To answer your question directly, you need to look at the following, are you creating a theme

  • for yourself

  • for public use

If you are creating a theme for yourself and have no intention of releasing it publicly, you can leave out the use of custom filters and actions.

Instead of using filters to filter the return value of a function or a variable, you can set the value to some desired static value. On the other hand, instead of using do_action() calls in your templates, you can just call the function where needed. So instead of doing the following in a template

do_action( 'some_action' );

and then in functions

add_action( 'some_action', 'some_function' );
function some_function()
{
    echo 'Some custom text';
}

you can simply just do the following in functions

function some_function()
{
    echo 'Some custom text';
}

and then call the function directly in your templates

some_function();

Even though you do not intend to release your theme publicly, it is still quite useful to make use of custom filters and action

If you intent to release a theme publicly, you would do users and child theme authors a huge favor to make values filterable and by making use of do_action() calls in order for them to unhook your function and then hook their own function to the action.

NOTE

We all tend to make use of closures for convenience, but they have one huge drawback, they are almost non-removable as anonymous functions don’t have callback names. For themes that will be released publicly, closures should be avoided accept if you don’t want something to be removable. Instead of doing

add_action( 'some_action', function ()
{
    echo 'Some value'
}):

rather do

add_action( 'some_action', 'some_function' );
function some_function()
{
    echo 'Some value';
}

A child theme or a plugin can now remove some_function() from the action with remove_action() and then plug/hook his own custom function to the some_action action call. This cannot be done when using closures