Q:

noexcept to become part of the type system

I hear that noexcept will become part of the function type in C++17.  What difference will this make?  Does it mean that we will have to distinguish between noexcept and non-noexcept functions and member functions in our templates (which will double the amount of boilerplate code we have to write)? 
For example, for current templates that matches function pointers:
template<typename R, typename... Args>
struct Foo<R (*)(Args...)> {};

We will need an additional:
template<typename R, typename... Args>
struct Foo<R (*)(Args...) noexcept> {};

And this is only for good old functions.  For member functions we have const, volatile, and ref-qualifiers already, yielding a huge load of combinatuons.  With the addition of noexcept it will get twice as bad. 

A:

If they had blindly changed things so that noexcept qualifications were part of a function pointer's type, they would have broken tons of code, generic and not.  As such, there's a back-door. 
In accord with P0021R1, any pointer to a noexcept-qualified function can be implicitly converted to a pointer to a non-noexcept-qualified function.  The same goes for pointers to member functions with such qualifications. 
Indeed, building that loophole seems to be what around 2/3rds of the language in the proposal is for.