Using esc_url with a hard coded url

I you think you need it. For example, you are using the title in a URL and you are getting the title dinamically; so you never know exactly if the title is valid to be used in URL or not. So, it is better to use it.

Just one example: it is very common that titles contain white spaces and white spaces need to be enconded to be used in URLs.

I would build the full URL string first and then I would use esc_url() at moment it is used for some attribute value.

$url_params = array(
    'url'         => get_the_permalink(),
    'media'       => $thumbnail,
    'description' => get_the_title()
);

$url = "http://pinterest.com/pin/create/button/?" . http_build_query( $url_params );

echo '<a href="' . esc_url( $url ) . '">Pinterest</a>';